@database Wildfire @$VER: Wildfire.guide V4.35 @node Main "Wildfire Documentation" ################################################################# # # # Wildfire - an Animation-System for the Amiga # # # # Copyright 1995-1997 WK-Artworks # # All rights reserved # # Unauthorized Duplication Prohibited # #---------------------------------------------------------------# # # # Documentation # # # ################################################################# @{" 1. Introduction " link introduction } @{" 12. Authors " link Authors } @{" 2. System Requirements " link requirements } @{" 13. Copyright " link Copyright } @{" 3. Installation " link installation } @{" 14. Developer-Information " link Developer } @{" 4. Usage " link Usage } @{" 15. FAQ " link FAQ } @{" 5. Technical information " link Technical } @{" 6. Main Documentation " link MainWindow } @{" 16. How to Order " link Order } @{" 7. Available Effects " link PCAddWindow } @{" 8. PowerPlugs! " link PowerPlugs! } @{" 17. Tutorials " link Tutorials } @{" 9. The YAFA Player " link yp.guide/MAIN } @{" 18. Wildfire Demos " link Demos } @{" 10. ARexx " link ARexx } @{" 19. Bonus Programs " link Bonus } @{" 11. Known Bugs " link Bugs } Documentation-Authors : Andreas K ssner, Andreas Maschke Last Changes : Saturday 11-Oct-97 Version : 4.35 Wildfire-Support : eksec@eure.de http://www.oberland.com/amiga/wildfire/ @endnode @remark TODO: @remark -Tutorials @remark -Developer-kit @node Introduction --------------------------------------------------------------------- Wildfire - where dreams become virtuality A Special Effect Program and many more --------------------------------------------------------------------- @{ub} Wildfire is not only another brandnew image-processing-program - it's a professional animation-processor with some really new concepts. It allows you for example the creation and processing of animations in several formats, the generation of time-dependant special-effects and the design of large projects containing several animations and frame-synchronized sound-effects. Because the common animation-formats on the Amiga have too many lacks or restrictions we have tried to create a better one: YAFA. This animation-format for example features many compression-methods and realtime-zooming. One of the outstanding features of Wildfire is the fact that it makes for you no difference if you apply changes to a whole animation or if you process only one image. A single image is only a very special case of an animation. In contrary to common image-processors you can use envelopes instead of plain numbers as effect-parameters. This makes the creation of complicated time-dependant special-effects very easy. So you haven't to fight against the "do"-loops in an ARexx-script to get an animation outside your image-processor any more. All of the numerous effects can be arranged in any number and combination. Because the output of any of these effects can be one of the 8 "flat" or 4 3D-temp-buffers Wildfire allows you to perform "impossible" operations easily and in a very comfortable way ! Main Features: -full PowerPC- and CyberGraphX-support -fast and comfortable Converter: input: YAFA, ANIM5/7/8, mpeg, image-sequences output: YAFA, ANIM5/7/8, image-sequences -preview for almost any operation (including realtime previews) -Project-Editor which allows the creation of large and complicated projects easily using the mouse -effect-generator featuring time-dependant parameters via envelopes -a stunning library of effect-PlugIns (about 80) -some really unique effects -3D-engine with multiple lightsources and phong-shading -superposition of 3D-effects (PowerPlugs!) -superposition of Lightwave-objects and images in the threedimensional space -(un)loading of PlugIns at any time -Envelope-Editor -Timecodes-Editor -Transition-Maker for easy creation of transitions between two animations -easy-to-use Player-interface -Filmstrips to simplify the perfect timimg of huge projects -AnimInfo-function displaying size-profiles etc. -fontsensitive GUI without MUI -internal gadget-toolbox which handles mathematical expressions instead of only plain numbers -calculator which allows for example the export of user-defined symbols to the gadgets in the whole-program -Drag&Go (using drag.gadget 1.0 beta Copyright 1997 J rg Kollmann, see bonus drawer!) -ARexx-port with about 400 commands -macros, custom-windows, docks -import of images from other programs -Developer-Kit which allows you to create your own effect-PlugIns -and many more @endnode @node Order How to order Wildfire is available through our commercial distributor Oberland. Contact eksec@eure.de for the latest details or just write to Oberland Computer: Oberland Computer In der Schneithohl 5 61476 Kronberg Germany Tel. ++49-(0)6173-6080 email: info@oberland.com It`ll come on a CD with lots of examples. Registered Users of the Shareware Version will get a special discount when they buy the commercial version. For the special conditions send a short email to eksec@eure.de and include your registration number. There will be two different Versions: - WF 5.0 Amiga native - WF 5.0 Amiga PPC Probably there will be special Versions for: - WF 5.0 Movieshop/Draco - WF p.OS @endnode @node Requirements @{b}Requirements@{ub} @{u}Hardware@{uu} -Processor: 68020 -Graphics : AGA or gfx-board (The program may work with ECS but this is not recommended) -Memory : 4 MB @{u}Software@{uu} -operation system V39 (3.0) -XPK compression system (xpkFAST recommended) This program was successfully tested on A1200 (030, 060) and A4000 (030, 040, 060, 060+PPC 404e) with several disk and memory configurations. @endnode @node Installation @{b}Installation@{ub} You can install Wildfire with the supplied script from the cd. Of course you can install it yourself, too. Copy the Wildfire Directory for your Language and your Processor (FPU/No-FPU) on your Harddisk. Assign WF: to the Wildfire Directory on your Harddisk. After that locate the file "envarc/Wildfire.config" and move it into "envarc:". That's it. No matter which way you installed Wildfire, inside the program you have the possibility to creata thumbnails (small previews for the effects which will be displayed in the `ADD` window of the processor) for your screendepth. We installed thumbnails in 24 bit which will be rendered for your screendepth in realtime. Just start the processor and gon into the `add` window and scroll around with your cursor-keys. If the update of the pictures is to slow for you, just render the thumbnails again. Just choose your screenmode where you want Wildfire to run on and press the function-key `F10` and select the macro: wf:Macros/createExamples.rexx and follow the instructions. The same goes for the Transition-Examples, which are small movies and are played inside the transition-maker to show you a preview of the to-be-generated effect. You can create them with the same macro as above, but be careful, on slow Amiga`s this may take some hours! @{b}File-Hierarchy@{ub} Wildfire +---system -private files | +---plugIns *PlugIns-rootdrawer | | +---operators operators for the Processor | | +---general general PlugIns | | +---system PlugIn-preferences and private data | | \---savers savers and loaders | +---images *icons for the icon-manager | +---filmstrips *filmstrips for the Transition-Maker | +---thumbnails *previews for the PCAdd-Window | \---help *some text-files +---alpha -alpha-images +---trash -temporary files +---expressions -expressions and symbols for the calculator +---profiles -size-profiles of animations +---YAFAOptions -YAFA-Compressor-settings +---annotations -annotations and text-files +---convolutions -matrix-settings for the Convolve-PlugIn +---doc -documentation and online-help-files +---envelopes -envelopes for the Processor +---filmstrips -Filmstrips +---images -Images +---macros -ARexx-Macros +---processes -Processor-scripts +---projects -Video-projects +---sessions -Converter-sessions +---tools -additional tools +---variables -Variables for the Processor \---windows -Custom-windows @endnode @node Bugs @{b}Known bugs@{ub} -the program may crash if you run out of memory -if you can`t start Wildfire on your GFX-Card then use the -noPrefs option which will launch Wildfire on the default Public Screen @endnode @node Authors @{b}Wildfire, Parts of the YAFA-concept, Animations@{ub} Andreas Maschke (WK-Artworks) Gr. Altef"ahre 24-26 23552 L"ubeck Germany @{b}Player, YAFA-concept, Ideas@{ub} Michael Henke (Smack/Infect) Praetoriusstr. 1/205 06124 Halle/Saale Germany EMail: epgbd@cluster1.urz.Uni-Halle.DE @{b}Ideas, Documentation, Moral Support, Beta-Testing:@{ub} Andreas K ssner Marrinksweg 5 48531 Nordhorn Germany EMail: eksec@eure.de (FULL Wildfire-Support) Phone: ++49 (0)5921/330420 18 - 20 o`clock weekdays @endnode @node Copyright @{b}Copyright@{ub} The program WF is Copyright (c) 1996-97 WK-Artworks (Andreas Maschke). All rights reserved. Commercial use is prohibited, if you want to use it for commercial purposes you have to get an explicit permission from the @{"author" link Authors} first. There are two different versions: @{u}Unregistered Demo-Version:@{uu} It is allowed to charge a fee to recover distribution costs, but no profit may be made by selling or otherwise distributing the program. It is not allowed to distribute only parts of the package or a modified program. @{u}Commercial Version:@{uu} It's strictly forbidden to give the commercial version to other users ! Giving this Version to other users, using commercial Versions that you did not receive from us for your personal use is considered as an act of software piracy ! It is not allowed to disassemble or otherwise reverse engineer any part of one of the Wildfire-related programs. @{b}Disclaimer@{ub} No guarantee is given nor implied that this program is fit for any use. The program and the information within this text are provided on "AS-IS" basis. The entire risk as to its quality and performance is with the user. In no event will the author be liable for direct, indirect, incidental or consequential damages resulting from any defect in the program. The author reserves the right to make changes to the program or the documentation without notice. @endnode @node Usage @{b}Usage@{ub} The program can be directly started from the Workbench or by typing "wf [options]" in a shell-window. Most operations can be done both using the mouse and the keybord. There are no menus because the AGA-hardware is too slow to render pulldown-menus on a screen with 32 or more colors. But 16...64 colors are recommended using the preview-function which is one of the major features of the program. The other reason is the fact that Wildfire has too many functions (about 120 windows containing about 1600 gadgets) to put them into menus without a very complex hierarchy. @{b}Options@{ub} -h : exit the program after displaying some informations -debug : turn on debug-output -noPrefs : don't load the configuration-file and use the Workbench-Screen as initial screen -noPPC : don't load any PPC-code -noCyberGraphX : don't use any special CyberGraphX-related code -screenModeReq : open a screenmode-requester at startup -screenMode : open the programm on a custom screen with the specified mode (don't forget the leading "0x" specifiying hex-numbers) -stWhite : use a white background for the StoryBoard (for screendumps) -root : specify the rootdrawer -prefsfile : read the preferences from the file specified @{b}ToolTypes@{ub} DEBUG NOPREFS NOPPC NOCYBERGRAPHX SCREENMODEREQ SCREENMODE= STWHITE ROOT= PREFSFILE= @endnode @remark /*************************************************************/ @remark /* @remark Main @remark */ @remark /*************************************************************/ @node MainWindow @{b}The Main-Window@{ub} After initialization Wildfire opens it's Main-Window on a screen of your choice. All major program parts like the Processor or the Preferences-Editor can be reached from within this Window. Because Wildfire has a lot of functions and windows there is a window-hierarchy. E.g., after closing the Converter-Window all subwindows like the PictureList-Window or the YAFAAnimOptions-Window are closed automatically. Because the Main-Window is on top of the hierarchy you can quit the program by closing it. Another function of the Main-Window is to act as an icon-manager like Workbench. For almost all files affected by the program like animations, envelopes, images, ... an icon is created automatically and placed on the Icon Area. After moving such an icon into another window a filetype-specific operation is performed. @{b}Functions:@{ub} @{" Converter " link ConverterWindow} @{" Projects " link ProjectsWindow} @{" Processor " link ProcessorWindow} @{" Player " link PlayerWindow} @{" TMaker " link TMakerWindow} @{" Preferences " link PreferencesWindow} @{" PlugIns " link PlugInsWindow} @{" Icon Area " link IconArea} @{" Icons " link IconsWindow} @{" DWA " link DWAWindow} @{" Log " link LogWindow} @{" Info " link InfoWindow} @{" Quit " QUIT} @{" Add " link IconFunctions} @{" Cleanup " link IconFunctions} @{" Reset " link IconFunctions} @{" Load " link IconFunctions} @{" Save " link IconFunctions} @endnode @node IconArea @{b}Icon Area@{ub} The Icon Area of the Main Window acts as a desktop. You can place, move or put files on it. There are four special icons which are initialized at startup automatically. If you drop a file-icon over one of these icons a filetype-specific operation is performed. Trashcan: To delete icons and files. The default is to delete the icons only. This behaviour can be changed from within the @{"Icons-Window" link IconsWindow}. Player: To play animations. Viewer: To display images. Editor: To edit or view textfiles. The external programs envoked can be specified from within the @{" Preferences-Window" link PreferencesWindow}. On the bottom of the Main-Window there some addional functions which deal with icons: @{" Add " link IconFunctions} @{" Cleanup " link IconFunctions} @{" Reset " IconFunctions} @{" Load " link IconFunctions} @{" Save " link IconFunctions} @endnode @node IconFunctions @{b}Add@{ub} Using this function you can put one or more external files on the desktop. For example you could select 20 images to drop them sequentially over the Viewer-icon and delete the ugly ones. @{b}Cleanup@{ub} After pressing this button the Icon Area is cleanup up. @{b}Reset@{ub} This function removes all file-icons from the desktop and puts the four special icons on it. @{b}Load@{ub} The Load-function restores a previous saved desktop. To make this operation as simple as possible a default filename is used. This filename can be changed from within the @{" Icons-Window " link IconsWindow}. @{b}Save@{ub} This saves the contents of the whole desktop as the file specified in the @{" Icons-Window " link IconsWindow}. @endnode @remark /*************************************************************/ @remark /* @remark Converter @remark */ @remark /*************************************************************/ @node ConverterWindow @{b}Introduction@{ub} The Converter is the program part which has to do the most hard jobs. It reads in a stream of data, performs some or many special effects on it and writes the results to harddisk. Unlike to common programs there is only a small difference for the user to perform easy or very complex operations. Example: 1. You want to convert a mpeg-animation into an IFF-Animation. This is easy. Selected the input- and the output-file, adjust the compression-parameters and press the "Convert"-button. 2. You want to scale down the input frames because you have not enough diskspace. This is easy. Just enable the Processor, open the Processor-Window and add a "Halve"-effect. That's all. 3. You want to convert only some of the images, e.g. frames 31...54. This is easy. Just open the CRange-window and enter these numbers. 4. You want to have a small animation in front of a large background. This is easy. Enable the processor and use a "LoadImage"- and a "Compose"-effect. That's all again. I could write thousand of such examples here - all of them where easy to realize. @{b}Converter-Window@{ub} @{u}Input@{uu} Type Select the type of input: "Animation", "SinglePictures", "BlackFrames" or "Sequence" Info Display some type-dependant information about the input-animation Related Options Open one of the optionswindows @{"PictureList" link PictureListWindow}, @{"BlackFrames" link BlackFramesWindow} or @{"Sequence" link SequenceWindow} depending on the type of input @{u}Output@{uu} Type Select the type of output: "YAFA", "ANIM", "SinglePictures" or "NIL:" Info Display some type-dependant information about the generated output-animation Related Options Open one of the optionswindows @{"YAFAOptions" link YAFAOptionsWindow}, @{"IFFOptions" link IFFOptionsWindow} or @{"SinglePictures" link SinglePicturesWindow} @{u}Options@{uu} Annotation Optional annotation string or file to include in a YAFA-animation Range Open the @{"CRange-Window" link CRangeWindow} to specify the range of the input-stream to be processed Preview Select the preview-type (none/window/screen) Processor Enable the Processor to modify the input-stream @{u}Operation@{uu} Save Session Save all options including the current window-settings and the Processor-settings as the specified session-file Load Session Restore a previously saved session Convert Start the converter All combinations of input- and output-streams are possible. A special case is input=output=SinglePictures. This feature is not obsolete, it allows you to create a sequence with numbered filenames from pictures having different locations. If you specify "NIL:" as output-stream no frames are written. This feature is especially useful for testing complicated Processor-scripts. The Converter can be aborted at any time - in the most cased the cancelled output-stream will be usable. @endnode @node CRangeWindow @{b}CRange-Window@{ub} From within this window the range of the processed input-stream is specified. @{b}Functions@{ub} State Enable/disable the current range-settings From First frame To Last frame, if a negative value is specified the number of input-frames is decremented by this value Step Range-step, useful for example to skip every 2nd frame Remove loop A preset to skip the looping frames of an IFF-animation If the range is disabled the whole input-stream is processed. @endnode @node IFFOptionsWindow @{b}IFFOptions-Window@{ub} This window let you select various settings for IFF-animations to be generated. @{b}Functions:@{ub} Related Options: Type Compression type Colormap Dynamic or static colormap Screenmode Screenmode used while playing the animation @endnode @node SinglePicturesWindow @{b}SinglePictures-Window@{ub} Using this window you can set up some options which affect the generation of single pictures. @{b}Functions:@{ub} Basename base-filename for the generated files, the frame-number will be appended in the format ".%04d", e.g. "ram:pic" -> "ram:pic.0001", "ram:pic.0002"... Shift Frames Value to add to the frame-number before generating the filename Screenmode Screenmode used for displaying the frames Type Toggles rendering on or off. @endnode @node YAFAOptionsWindow @{b}YAFAOptionsWindow@{ub} This window lets you adjust the various settings for YAFA-animations to be generated. @{b}Functions:@{ub} Image data Internal representation of the image-data Colormap Dynamic or static colormap Force Timecodes Force the creation of timecodes even they are all equal Speed Speed-preset for the Player (fps=50/speed on Pal) Post Compression Turn on xpk-post-compression Compressor Select xpk-compressor Mode Select xpk-compression-mode, see xpk references for more details Delta Compression Choose the type of delta compression UC-Frames Choose the number uncompressed delta-frames UC-Mode Choose the type of uncompressed delta-frames Analysis open the @{"Analysis-Window" link AnalysisWindow} to check out some predefined combinations of settings. Import Extract the settings from an external YAFA-animation Load Load a previous saved settings-file Save Save all YAFA-settings into a settings-file @endnode @node AnalysisWindow @{b}Analysis-Window@{ub} The functions of this window are useful if you have no idea about the meaning of the various parameters. It creates some animations using some predefined settings and displays the resulting size-profiles. After that the settings of the smallest generated animation is selected and can be applied to the YAFAOptions-Window. @{b}Functions:@{ub} Frames Number of frames generated for every test Run test Start the test Results Displays some informations like the output-size and the used settings for every generated animation Size Profile Displays a size-profile for every generated animation, the one of the selected animation is highlighted Use Apply the settings of the selected animation to the YAFAOptions-Window @endnode @node PictureListWindow @{b}PictureList-Window@{ub} The picturelist has many features to create and manipulate a list of pictures to be converted. @{b}Functions:@{ub} Add Add one or more pictures Add Reverse Add one or more pictures in reverse order Add Dir Add a whole directory Sort Sort the complete list Check Remove non-ILBM files and pictures that don't fit the first entry's dimensions (width, height, depth) from list, this functions makes only sense if the Processor is turned off Remove Remove selected item from list Remove Range Remove all items inside the selected range from the list Set Timecode Set the timecode for selected item Time Range Set timecodes for all items inside the specified range Show Display the selected picture Picture Info Display some informations about the selected item From First item of the range To Last item of the range Step Step of the range, e.g., a value of 2 skips every 2nd frame @endnode @node BlackFramesWindow @{b}BlackFrames-Window@{ub} The BlackFrames-Window is useful if you want to render an animation using only Wildfire. An example would be a rotating cube with some pictures mapped on it. @{b}Functions@{ub} Frames Number of the frames to be generated Width Width of the frames Height Height of the frames The BlackFrames-stream is some kind of a simulation of a real picturelist or input-animation. The most important field is the number of frames. If the Processor-script doesn't use the generated input its recommended to make the size-values very small, e.g. 32x20. @endnode @node SequenceWindow @{b}Sequence-Window@{ub} The Sequence-stream is an extension of the SinglePicture-mode of the Processor. Both single pictures and image-sequences can be used. @{b}Functions@{ub} Sequence complete filename of an single image or base-filename of an image-sequence Frames frame count of the generated input-stream Loop length of the image-sequence Shift shift-value for the filenames of an image-sequence Show show the selected image @endnode @remark /*************************************************************/ @remark /* @remark Projects @remark */ @remark /*************************************************************/ @node ProjectsWindow @{b}Projects-Window@{ub} The animation-projects created with this editor are arrangements of YAFA-animations and music modules, samples and executables. Projects are saved as text files which can played from within the @{"Player-Window" link PlayerWindow} or directly envoking the YAFA-Player "yp" with the "-batch"-option. Projects are the perfect choice if you want to create huge videos because the YAFA-system has the capability to play more small animations as one without any gaps. Another advantage is the fact that you can apply changes to such a project much easier than to a single huge animation. @{b}Functions:@{ub} @{u}Animations@{uu} Add Include a YAFA-animation (*) Kill Remove the selected animation from the list Replace Replace the selected file Up/Down Move selected item up/down in the list Local Range Specify the first first and last frame to be played Example: the selected animation has 100 frames 1, 100 - exactly one shot 11, 50 - skips first 10 frames, plays 40 frames 51, 250 - plays the complete animation exactly two times, start/end are moved by 50 frames Global Range Shows range as global frame numbers in the project Info Display some information about the selected animation and let you adjust some settings similar to the @{"Player-Window" link PlayerWindow} Filmstrip Open the @{"Filmstrip-Window" link FilmStripWindow} @{u}Sounds@{uu} Add The same like (*) for modules, samples or executables Kill Dito Replace Dito Global Range Set global frame numbers to start/stop playing selected sound. An executable will be started when the player reaches the start value. A special case is the range 0,0 for executables. These commands will be executed before the YAFA-Player shuts down intuition - so you can use commands that have an output (like a cd-player) Type specify the type of sound-effect Edit open one of the edit-windows @{"Module" link ModuleWindow}, @{"Sample" link SampleWindow} or @{"Command" link CommandWindow} @{u}Project@{uu} Frames Shows the number of frames the whole project consists of Play selected Play project starting with the selected item Play all Play the whole project Profile Open the @{"Profile-Window" link ProfileWindow} Identify Calculate animation and frame number from a global frame number Save All Save all frames played in the project using the picture basename specified in the @{"Converter" link ConverterWindow} Clear clear the whole project Project File select file to load/save @endnode @node ProfileWindow @{b}Profile-Window@{ub} The Profile-Windows is made to visualize the ranges of animations and sounds of a project. @{b}Functions@{ub} Animations Shows bars representing the global ranges of the animations Sounds The same for sound-effects Size-Profile Show a size-profile of the whole project Full View Scale the bars horizontally to fit the whole project in the window Lines Number of visible lines, the best choice depends on the used font Because the range of a particular animation affects the whole project it can not be changed from within this window. But you can set ranges of sound effects using the mouse: Left Button Drag startpoint Right Button Drag endpoint @endnode @node ModuleWindow @{b}Module-Window@{ub} This edit-window appears if the selected item is a protracker module which will be played with the internal player. @{b}Functions:@{ub} File Filename which can be changed here Test Hear the module Stop Stop playing @endnode @node SampleWindow @{b}Sample-Window@{ub} If the selected sound-effect is an IFF 8SVX sample this window appears. @{b}Functions:@{ub} File Filename which can be changed here Test Hear the sample Channel Select the audio channel (ignored when playing stereo samples) Repeat How often the sample is played, a value of 0 causes an endless loop Volume Adjust the volume Stop Stop playing @endnode @node CommandWindow @{b}Command-Window@{ub} This window is for editing commands. String The command you want to execute. You can type in whatever you want, e.g. "rx ARexx:EP_LoadModule.rexx Music:CUST.Electricity" or "CDPLAY 4" or "delete s:startup-sequence" Test To execute the command. @endnode @node FilmStripWindow @{b}Filmstrip-Window@{ub} From within this window you can create, modify and play filmstrips. A filmstrip is a small representation of a single animation or a whole project. Such filmstrips are for example played in the middle of the TMaker-Window. @{b}Animation@{ub} Animation Filename of the animation or project to be converted From/To/Step Range changes the pictures which will be used for the film Width The width of the filmstrip Color Type of palette to be generated MaxDepth largest depth used for rendering on CyberGraphX-screens Compression Turn on/off xpk-compression Update Start converting @{b}Film@{ub} Film Filename of the Filmstrip Rows/Cols Specifys the layout for displaying or playing Load/Save Load/save a filmstrip Play Play the selected filmstrip as movie, to change the speed use the numeric keys Append Append the selected filmstrip to the current (displayed) one @endnode @remark /*************************************************************/ @remark /* @remark Player @remark */ @remark /*************************************************************/ @node PlayerWindow @{b}PlayerWindow@{ub} This window acts as a GUI for the external animation players like the YAFA-Player "yp". Some of the functions are only available for YAFA-animations. @{b}Animation@{ub} File filename of a single animation or a Wildfire-project Display select the realtime-transformations done by the YAFA-Player Cache don't play YAFA-animations directly from harddisk FrameBuffers cache-buffer for the YAFA-player LoadBuffer load-buffer for the YAFA-player @{b}Information@{ub} Animation show type-specific informations about the selected animation Shortcuts show the shortcuts of the YAFA-player In case of YAFA- or IFF-animations a size-profile and some informations about the used compression is displayed. The @{" Timecodes-Window " link TimeCodesWindow} can be reached from this Window, too. @{b}Player@{ub} Output display-type 24Bit how to display 15/24 bit-images or -animations: Real : "native", requires gfx-board DRGB : dither-rgb, uses 7/8 bit-display DRGB2: dither-rgb2, uses 7/8 bit-display Gray : grayscale, uses 8 bit-display Q332 : simple quantization, uses 8 bit-display Wait after setting this option the YAFA-Player waits for the -key before playing Screenmode choose the screenmode (Output=SCREEN) Since version 3.74 @{" Truecolor " link TruecolorImages}-YAFA-animations are supported by both the external Player yp and Wildfire. @endnode @node TimeCodesWindow @{b}TimeCodes-Window@{ub} This window allows you to modify the timecodes of YAFA- and IFF-animations. A special feature is importing/exporting files. This makes it possible to modify timecodes graphically using the @{" Envelope-Editor " link EnvelopeWindow}. @{b}Functions:@{ub} From, To, Step range to be modified Set Timecode set a single timecode Time Range change all timecodes inside the specified range Import import timecodes from a file saved by the Timecodes-Editor or from within the @{" EnvelopeAdvanced-Window " link EnvelopeAdvancedWindow} Export save the current timecodes to disk Show show the selected frame of the animation Play play the whole animation to test the changes @endnode @remark /*************************************************************/ @remark /* @remark TMaker @remark */ @remark /*************************************************************/ @node TMakerWindow @{b}TMaker-Window@{ub} The transition maker creates various predefined transitions between two animations or images also known as "wipes". This feature is very useful in conjunction with animation-projects. It's recommended to install the example-filmstrips which show two animations (called "A" and "B") and the selected transition from "A" into "B" (called "A->B") as small animations in the middle of the Transition-Window. The Filmstrip-Player is implemented as a background-task at low priority so no cpu-time is wasted. Because only YAFA-animations can be arranged in animation-projects only this output-format is supported yet. @{b}Functions:@{ub}: Input1 Input animation or image 1 Input2 Input animation or image 2 Output Output animation (the transition) Temp A directory used for the temporary files which will be created while rendering CreateEX If you have only the small installation of Wildfire without transition-filmstrips this button will create them for you. To test if you have the example transitions just enable the "Example"-option. After that three animations should appear in the middle of the window. If they doesn't you may create them by pressing the "CreateEX"-button. YAFAOpts Adjust the YAFA-compressor-options Preview Turn preview on/off Example Turn example-movies on/off Because this features runs at low priority it may be always switched on. Type Select the main type of transition Subtype Select the subtype of the selected transition CreateTemp Create the temporary files This files have to be generated only once for a pair of input-animations. So you can test various transitions very quickly. The "Convert"-function creates them automatically if necessary. KillTemp Deletes all temporary files. Play Play the animation-sequence "anim1 - transition - anim2" Convert Create the transition @endnode @remark /*************************************************************/ @remark /* @remark Preferences @remark */ @remark /*************************************************************/ @node PreferencesWindow @{b}Preferences-Window@{ub} The Preferences-Window lets you specify most of the program-settings and handle different settings for different purpose. All modified settings are active immediately - there are no "Use"- or "Cancel"- gadgets. @{b}Functions @{ub} ScreenType choose the type of the Wildfire-screen Screenmode choose the screenmode DisplayScreenmode choose the screenmode for displayed images ScreenFont select the font for the Wildfire screen IconManagerFont select the font for the Icon Manager ScreenColors select the colors for the wildfire screen Preset some color-presets. "WF (modern)" is the default Import load colors Export save colors PlayerScreen name of the public screen for the YAFA-Player DClickTime time for a double click ReqTimeOut confirm requesters automatically after the specified time (in seconds) Statistics turn on/off the generation of Player- and Converter-statistics Expertmode turn on/off safety-requesters PPC turn on/off the initialized PPC-modules ClickToFront automatically bring activated windows into foreground OpenDWA open the @{" DWA-Window " link DWAWindow} at startup PRVDither dither preview-immages (e.g. thumbnails and filmstrips) Paths open the Paths-Window Macros open the Macros-Window File the filename of the current Preferences-file Save save the current settings Load load the specified settings @{b}Paths-Window @{ub} From within this window the default paths for animations, pictures, ... and the external programs are specified. YAFA Player player for YAFA-animations (default: "yp") Anim Player player for ANIM-animations (default: "vt") MPEG-Player player for MPEG-anims (default: "mp") ImageProcessor external image-processor (default: "ADPro mm=1000000") Viewer image-displaying program (default: "@{"Visage" link Visage}") Editor text-editor (default: "ed") The "ImageProcessor"-setting is only used by the "ARexx"-Operator-PlugIn. @{b}Macros-Window@{ub} In this window the ARexx-macros executed after pressing on of the function-keys can be specified. Because there are only 10 function keys and maybe lots of macros the -key is reserved. After pressing it a filerequester appears and lets you select the macro to execute. @endnode @remark /*************************************************************/ @remark /* @remark Icons @remark */ @remark /*************************************************************/ @node IconsWindow @{b}Icons-Window@{ub} The Icons-Window has three major functions: changing filetypes of icons on the desktop, setting up of some desktop-specific options and creating of icons with nearly unlimited size and quality. @{b}Options:@{ub} File filename of the desktop-files Trashcan-Action lets you selected if you want to remove only icons or icons and files @{b}Icon-Saver:@{ub} Image1 filename of the first (normal) image of the icon to be generated Image2 optional 2nd image Icon icon-file to be generated Color sets the type of palette to be generated Width specified the icon-width, the height depends on the aspect of the 1st image Depth number of colors used for rendering Convert After pressing the convert-button the images are loaded, scaled and rendered using the current screen-palette. If you want to create icons for the Workbench you have open Wildfire on the Workbench-screen (temporary). If you want to create icons in high quality use a very high screen-depth and convert the created icons into NewIcons later. @{b}Change the filetype:@{ub} If Wildfire didn't recognise the type of an external file correctly you can change this type by simply dragging the icon into the Icon-Window. After that a requester displaying the current and the available filetypes will appear. @endnode @remark /*************************************************************/ @remark /* @remark DWA @remark */ @remark /*************************************************************/ @node DWAWindow @{b}DWA-Window@{ub} The DWA-Window allows you to access windows directly. This may help you to locate special functions in a faster way. After selecting a window and pressing the -key the selected window and all windows which are on top of it in the window-hierarchy are opened. If you set the "OpenDWA"-option in the @{"Preferences-Window" link PreferencesWindow} the DWA-Window will be opened at startup automatically. @endnode @remark /*************************************************************/ @remark /* @remark Log @remark */ @remark /*************************************************************/ @node LogWindow @{b}Log-Window@{ub} All statistics, warnings and some additional informations are collected and displayed in this window. Of course this feature can be turned off. @{b}Functions@{ub}: State toggle logfile-generation on/off Edit edit the logfile Delete delete the logfile Clear clear the logfile Load load the logfile Save save the logfile Verbose toggle verbose-mode on/off SaveAtExit toggle saving of the logfile at program-exit on/off @endnode @node InfoWindow @{b}Info-Window@{ub} This window displays some useful informations like the available memory, the date, the amount of currently allocated memory and program-informations. @endnode @remark /*************************************************************/ @remark /* @remark PlugIns @remark */ @remark /*************************************************************/ @node PlugInsWindow @{b}PlugIns-Window@{ub} The PlugIns-Window gives you control over external Wildfire-programs known as "General PlugIns". @{b}Functions@{ub} Add add one or more PlugIns Delete unload the selected PlugIn SavePrefs save the settings of a PlugIn Open activate the selected PlugIn Close deactivate a PlugIn The "SavePrefs"-function saves the PlugIn-state and some private-date. If the PlugIn was open while saving it will be activated next time automatically. @{b}Available PlugIns@{ub} @{" ColorWheel " link gnColorWheel} @{" Command " link gnCommand} @{" ConvertImages " link gnConvertImages} @{" CountPlugIns " link gnCountPlugIns} @{" GrabWindow " link gnGrabWindow} @{" Patch " link gnPatch} @{" TileImage " link gnTileImage} @{" SlideShow " link gnSlideShow} @{" XAnim " link gnXAnim} @endnode @node gnColorWheel @{b}ColorWheel-PlugIn@{ub} The ColorWheel-PlugIn was made to simplify the selection of the right colors for the various operators. Just select a color of your choice and use the values indicated at the bottom of the window as effect-parameters. @endnode @node gnPatch @{b}Patch-PlugIn@{ub} This PlugIn was made to simplify the process of patching lots of (executable) files. Currently only the SAS-Tools "scompare" and "spatch" are supported. But this may change in future. @{u}Creating Patches@{uu} *Create a root-drawer, e.g. "update" *Enter the root-drawer and create two drawers "new" and "old" *Copy all of your "old" files (the ones to be updated) into "old", put the "new" files into "new" *Press the "Generate"-button Notes: 1) DON'T move your files into the "new" or "old" drawer because identical files are DELETED automatically 2) Currently the check for identical files is simply done by comparing the file-size 3) As result you get a new drawer "patches" containing all the patches @{u}Applying Patches@{uu} *Create a root-drawer, e.g. "update" *move the "patches" drawer into this drawer *Enter the root-drawer and create a drawer "old" *Copy the "old" files into the "old" drawer *Press the "Apply"-button Notes: 1) It doesn't matter if you copy all "old" files into the drawer or only the ones to patch 2) As result you get a new drawer "new" containing all "new" files @{u}Notes@{uu} 1) For applying patches (which is the general purpose) the freely distributable programm "spatch" is required. 2) For generating patches the Programm "scompare" is required. But this program isn't freely distributable. 3) Currently this PlugIn doesn't support directory-trees, but I think this isn't necessary. @endnode @node gnCommand @{b}Command-PlugIn@{ub} The Command-PlugIn executes the supplied input-string as Wildfire-ARexx-command. This may be useful while creating complicated macros or simply to test out how a particular command works. @endnode @node gnConvertImages @{b}ConvertImages-PlugIn@{ub} The ConvertImages-PlugIn converts a drawer of images keeping all filenames. This is for example useful if you have a drawer with lots of jpeg-, tiff-, iff-, ... images and you want them all in png-format. The file-tag can be specified using the "Extension"-gadget - if this field is left blank the filenames are not changed. If the Processor-Option is switched on the current Processor-Script (evaluated at frame 1) is applied to each image. The output-format is selected as usual in the @{"Savers-Window" link SaversWindow} of the Processor. @endnode @node gnCountPlugIns @{b}CountPlugIns-PlugIn@{ub} The CountPlugIns-PlugIn shows some statistics about the initialized PlugIns including Operators, Savers and General PlugIns. This trivial thing was created as example for the developer- kit which will be available soon. @endnode @node gnSlideShow @{b}SlideShow-PlugIn@{ub} The SlideShow-PlugIn allows you to create slideshows easily. There are many functions to create and modify a picture-list which can be loaded and saved. The slideshow is performed calling the external program "@{"Visage" link Visage}" by Magnus Holmgren. This nice program is used because of it's capability of "loading while displaying". @{b}Functions:@{ub} Add add one or more images to the list AddDir add the contents of a whole drawer to the list From, To, Step picture-range Remove remove the selected picture from the list Remove Range remove all pictures inside the specified range from the list Delete delete the selected picture File file for loading/saving picture-lists Save save the current picture-list to disk Load load a previously saved picture-list Clear clear the current picture-list Show display the selected picture Delay pause between two images during the slideshow Go perform the slideshow The only way to abort the slideshow is to abort the viewer sequentially pressing the right mouse-button. The number of required mouseclicks depends on the length of the image-paths and the number of items in the picture-list. @endnode @node gnGrabWindow @{b}GrabWindow-PlugIn@{ub} The GrabWindow-PlugIn saves the selected Window or screen to harddisk. The output-format is selected as usual in the @{"Savers-Window" link SaversWindow} of the Processor. @endnode @node gnTileImage @{b}TileImage-PlugIn@{ub} The TileImage-PlugIn splits a specified image into small portions with the same size. The output-format is selected as usual in the @{"Savers-Window" link SaversWindow} of the Processor. @{b}Functions:@{ub} Input input-image Output base-filename of the generated particles xCount number of fragments in x-direction yCount number of fragments in y-direction @{b}Notes:@{ub} 1. Finally you will get xCount*yCount fragments with filenames like "output.0001", "output.0002", ... The counter runs from the left lower edge to the right upper edge (which may be important if you want to use the created images later) 2. the sum of the generated fragments must fit the image-size *exactly*. For example you can't subdivide an image of the dimensions 640x480 into 3x7 fragments 3. The idea for this PlugIn is really not mine ;) @endnode @node gnXAnim @{b}XAnim-PlugIn@{ub} This PlugIn uses the program XAnim to split an animation into single frames (of depth 8 or 24). Because XAnim supports almost any known animation format this PlugIn may be considered as an "universal animation-loader" for Wildfire. @{b}Functions:@{ub} Animation animation to split Output base-filename of the generated images XAnim XAnim-path (see below) Mode create 8- or 24 Bit images Convert Start the operation @{b}Notes:@{ub} 1. There are a lot of Amiga-ports of XAnim. But most of them are not capable to save images (because they are intended to be animation-PLAYERS). But the program "AmiXAnim" by Joop van de Wege is able to save both 8- and 24-bit images. 2. Because there may be lots of different versions of XAnim (an Amiga-version, a X11-version, the port by Joop van de Wege, ...) on your harddisk you must specify the full path of the program you want to use. In general this is "wf:tools/AmiXAnim". 3. Please don't break XAnim while converting. (If it crashes while writing your harddisk has to be validated which usually takes much more time than converting the whole animation.) @{b}Copyright Notices:@{ub} 1. XAnim Copyright (C) 1990,1991,1992,1993,1994,1995,1996 by Mark Podlipec. All rights reserved. 2. Readme-file of "AmiXAnim" Short: Xanim for Amiga BETA_6. 3.x+AGA or gfxcard required! Author: Joop van de Wege Uploader: Joop.vandeWege@Medew.ENTO.WAU.NL Type: gfx/show This is the BETA_6 version of my port of Xanim to the Amiga. It requires 3.x and AGA or a graphics card and 3.x, needs atleast a stack of 10000!! It is able to play back: Quicktime movies, AVI (windows), DL and FLI/FLC There is support for 16/24bit Qt/AVI Only support 256 colors and not less at the moment. Dithering 16/24bit anims to 8bit might/might not work. Shell only. Save IFF pics possible 8bit or 24bit. (use option +Di8filename or +Di24filename; filename can be any valid AmigaDOS path+file, there is no SPACE between the option +Di8/+Di24 and the filename!. Files will be automatically numbered from 0-n. 8/24bit saving should work for anyone having 3.x with or without a 256 color mode. NEW NEW NEW - 24bit display on the Merlin enabled and possible to center animations. Tell me if you like it. Please don't select 16bit from the screenmode requester from the Merlin. It won't do any harm but you'll be watching a black display!!!! - Centering on Amiga displays too. - Support for Cybergfx 8/24bit 8bit is tested and should work. 24bit not tested but should work too. Please *report* any problems!!! - Dumped reqtools. Now using ASL. 8bit saving works now too. You won't need a 256 color display anymore. No display will be opened/required when using the +Di8 and +Di24 options. Kickstart 3.x still required. Fix for the width not dividable through 8. Display and save of any width should work now. If problems still exist please report.! Code for gfxcards included: Merlin 8 and 24bit enabled and working. NOT 16bit. EGS (largely untested, don't have one ;-) ) PicassoII ( ,, ) Cybergfx 8 and 24bit I you have one and know how to program, please have a look at the supplied code and tell me what I'm doing wrong. Support for: RetinaZ2/Z3 and fast c2p is in the works. If you have such a card and know how to program the beasty please have alook at the supplied example of the Merlin. Try to substitute your code for mine. If it is not clear please free feel to email me at: Joop.vandeWege@medew.ento.wau.nl Complete source will be available in the final or later BETA releases! Type Xamiga +h or -h for help. NOTE the last main option 'D' :) Send questions/remarks/bugs/anything to: Joop.vandeWege@medew.ento.wau.nl @endnode @remark /*************************************************************/ @remark /* @remark FAQ @remark */ @remark /*************************************************************/ @node FAQ @{b}Frequently Asked Questions@{ub} Q: Wildfire crashes my machine. I have an 68040 processor. A: Try to run the `Patch for 68040 bug in "mathieeesingbas.library" V40` MathPatch.lha Q: Does the transition maker not work in the demo mode? A: Since Version 3.90 it is fixed! Q: Wildfire crashes on my CyberGFX-System! A: Just decrunch the draggadget.lha archive from the Wildfire/Bonus drawer and start the `patchgels` program. This will fix a bug inside the old Cybergrafix Software. Some other bugs are fixed in the latest version! Just copy the new version (check if it is newer than your version!) of the drag.gadget into the Wildfire/System drawer. Q: Wildfire asks for amigaguide.library V37 at startup but I have installed it!!! A: Be sure your startup-sequence contains the following lines: assign libs: hd0:classes add adddatatypes refresh quiet (since OS3.1) This is necessary because the amigaguide.datatype and maybe some other components will be initialized while opening the system-libraries. (This means that the error-message which is produced by the startup-code I use is wrong.) Q: Which assigns etc. are necessary to run your program ? A: Wildfire works after booting without startup-sequence if you enter the following lines: setpatch assign libs: hd0:classes add adddatatypes refresh quiet stack 10000 wf After that the most parts of the program (converting, processing images, playing animations) work without problems. The only "bad" thing I found is the online-help which is displayed as plain text. Q: There are plans to create PowerPC-version of Wildfire ? A: Yes, a PowerPC-version will be available very soon. (The compiler is installed but we have no PPC-board yet.) Q: How about a p.OS-version of Wildfire ? A: We are working on it! @endnode @remark /*************************************************************/ @remark /* @remark Processor @remark */ @remark /*************************************************************/ @node ProcessorWindow @{b}Processor-Window@{ub} @{u}Introduction@{uu} The Processor is Wildfire's powerful image-processing engine which acts as a PlugIn between the Converter's input and output. If you have understood the basic @{" concept " link pcConcept} of this architecture it's easy for you to create almost any complicated or simple effect. @{b}Functions:@{ub} @{u}Process-Script:@{uu} Add open the @{" PCAdd-Window " link PCAddWindow} to append an operator to the list Kill kill the selected item Duplicate duplicate the selected item Import import one or more items from a previously saved Process-file Edit open the Options-Window of the selected Operator Up move the selected item up Down move the selected item down Visible/Hidden toggle if the current item remains visible if folding is enabled Enabled/Disabled disable/enable the current item Folding toggle list-folding on/off Range the frame-range of the current Operator: from: first frame to : last frame step: positive value: turn on the operator at each th frame negative value: turn off the operator at each <0-step>th frame It may be neccessary to include operators which have to be executed only once- but under all circumstances, e.g. an LoadImage-operator. Setting it's range to (0 0 1) causes this operator to be executed at the first frame the Processor is envoked. (In single-picture-mode this may be every possible frame.) Folding is very nice feature to design very complex scripts. If a particular scene works you should hide it to work on the next one. A comment describing the hidden scene and the frame-range should be left visible. @{u}Options:@{uu} Mode color-mode for rendered images Dither dithering-method used while rendering images Depth depth of rendered images, the following depths are currently supported: 1...8 (rendered images with colormap), 15/24 (@{" Truecolor " link TruecolorImages} images) CSkip number of colors not used while rendering images, this may be useful for creating Workbench-backdrops Scale @{" Process-Scale-Value " link pcScale} BGRed, background-color specifying the "black color" for BGGreen, the numerous image-deforming effects BGBlue Smooth global intensity of smoothing for various operators Single Image open the @{" PCSinglePicture-Window " link PCSinglePictureWindow} to process single images Variables open the @{" Variables-Window " link VariablesWindow} to edit time-dependant animation-paramters StoryBoard open the @{" StoryBoard-Window " link StoryBoardWindow} to visualize the current script Savers open the @{" Savers-Window " link SaversWindow} to select the Saver used while writing TrueColor-images Palette open the @{" Palette-Window " link PaletteWindow} to create a locked Palette Calculator open the @{" Calculator-Window " link CalculatorWindow} File filename used for loading/saving of Process-scripts Load load a previously saved Process-file Save save the Process-script, all Variables and the Palette as Process-file Clear clear the Process-script, all Variables keep unchanged @{b}Additional ShortCuts:@{ub} delete the selected list-item Test Process of the @{" PCSinglePicture-Window " link PCSinglePictureWindow} toggle @{" Preview " link ProcessorPreview} on/off , browse through the Process-list unfold item (if folding=off) unfold whole list after safety-requester (if folding=on) fold item enable/disable item @endnode @node pcConcept @{b}The concept@{ub} A normal animation-converter like MainActor reads in a input-stream of pictures and writes them as output-stream to harddisk. (The complicated process of (de)compressing various animation- formats is here neglected.) The Converter of Wildfire extends this simple concept by a PlugIn-architecture. You can "plug in" as many modifications between the input and the output as you want. These modifications are realized via Operators. For example this concept would allow to scale down animations "plugging in" a Halve-operator. A further extension is the usage of tempory buffers called "TEMP-buffers". Every Wildfire-PlugIn has at least two Parameters: the input- and the output-buffer. The "normal" buffer generated by the Converter is called "STREAM". There are 8 TEMP-buffers called "TEMP1"..."TEMP8". In this terms the process of halving an animation looks like this: input ->STREAM -> Halve -> STREAM I output This concept of TEMP-buffers is much more powerful. For example it allows you to create an animation which consists of the input- animation as gray background and as small colored foreground. In this case you would need a Scale-, a ColorToGray- and a Compose- PlugIn. The scheme would look like this: input ->STREAM -> Scale -> TEMP1 ) > Compose -> STREAM -> ColorToGray -> STREAM ) I output But this concept doesn't allow you very complicated effects like a jumping animation in front of a melting one. So a further extension is necessary: time-dependant animation- parameters. For example this allows you to create a spinning animation. All you need is a Rotate-PlugIn and a rotate-amount running from 0 to 360 degrees during the whole animation. Let's assume your animation has 120 frames. To convert it into a spinning one you have to "plug in" the Rotate-Operator, to create the Envelope describing the variation of the rotate-amount with the frame number and to "plug in" this Envelope into the Rotate-Operator. That's it. The Envelope consists of two points one at frame 0 with the value 0 and one at frame 120 with the value 360. Setting the value 0 at frame 0 which is never reached (the first frame is always 1) causes the creation of a looping animation. As said before, if you understood this concept you can do almost anything. Example: Compose four different animations after applying a Twirl-effect to the 1st, a Negative-effect to the 2nd, a Cube-effect to the 3rd and a Posterise-effect to the 4th one: input ->STREAM -> Twirl ->STREAM ) > Compose -> STREAM ) LoadImage ->TEMP1 -> Negative -> TEMP1 ) ) > Compose -> STREAM LoadImage -> TEMP1 -> Cube -> TEMP1 ) ) I > Compose -> TEMP1 ) output LoadImage -> TEMP2 -> Poszerise -> TEMP2 ) This example doesn't make any sense but demonstrates that the only limit is your own creativity. @endnode @node pcQuant3D @{b}3D-Quantization-value@{ub} This important parameter affects both the quality and the speed of the images created or modified by the various 3d-effects. The value specifies how many pixels are transformed like one point of the source-image. If this value is left to 1 the image is transformed pixel by pixel. Higher values cause the approximation of the image by quadrangles of the size specified by the 3D-Quantization-value. E.g., after specifiying a value of 3 the image is approximated by quadrangles of the size 3x3. The color of every quadrangle is computed from the 9 original pixel using an interpolation method. The result may look very bad but is displayed almost in realtime at fast machines. The main purpose of quantization values higher than 1 is to speed up the generation of previews while adjusting the many parameters. Another advantage may be the fact that the amount of memory required for the 3d-calculations decreases with increasing quantization-values at a power of 2. That means at a quantization value of 2 you need only 25 percent of the memory required for the full computation - but the image-quality will be almost the same. Smaller values cause the creation of more points using another interpolation method. This may be necessary after combining several 3D-effects which cause very large deformations. In this case a qantization value of 0.5 will cause the interpotion of every pixel by four quadrangles. This requires much more memory and computation time but will produce images at very high quality. @endnode @node pcScale @{b}Process-Scale-value@{ub} This harmless-looking option is a real mega-feature: It allows you to use Processor-scripts designed for a particular image-size to apply to images of other dimensions. Example: You have designed a large project of about 1000 frames processing images of a dimension 320x256. Now you want to create a preview-animation of the halve size. So simply set the Scale-value to 0.5. Due the nature of such feature there are some restrictions: *the current image-sequence must have the same aspect as the one the script was designed for *some very special operators cannot be used, e.g. the font-size of the Text-operator cannot be scaled contingously But the last point is no real restriction because these few operators can be replaced (temporarily). There is one very important thing you should always remember. After changing the Process-Scale-value all process-parameters which are in pixel-units are scaled. This may cause very strange results if you use images with a dimension which doesn't fit this scale-value. Example: You use a scale-value of 0.5 and the same images the script was designed for. In this case all size-dependant are divided by 2. If your script for example contains a 3D-operator with a camZ-value of -800 this value will be reduced to -400. This will cause a very strange view if your image has a size of 640x480, the program may even hang up due the rendering of almost infinite large faces. So always don't forget to change the input-stream and not only the Process-Scale-value ! @endnode @node ProcessorPreview @{b}Preview-Window@{ub} The Preview is a very useful feature while testing complicated scripts. It applies the current-Process-script to a smaller version of the picture specified in the @{" PCSinglePicture-Window " link PCSinglePictureWindow}. The change of any parameter is visible in the Process-Window instantly (on fast machines). The width and depth of the preview can be specified from within the @{" PCSinglePicture-Window " link PCSinglePictureWindow}. A width of 160 and a depth of 4 is a should be always good choice. If you have used a "normal" image-processor before you may have enjoyed the feature of graphically specifing parameters like dragging a rectangle for a Crop-effect. This "parameter-dragging" is available in Wildfire, too. The @{" ImageCoordinates-Window " link ImageCoordinatesWindow} allows you to graphically modify some types of controls inside the Preview-Window. The parameters of this controls (point, circle, or rectangle) can be applied to several effects. @{b}Shortcuts:@{ub} refresh the image (e.g. after aborting) open the @{" ImageCoordinates-Window " link ImageCoordinatesWindow} @endnode @node ImageCoordinatesWindow @{b}ImageCoordinatesWindow@{ub} The ImageCoordinates-Window displays informations about the current image (the one spefied as input from within the PCSinglePicture-Window) and allows you to modify several effect-parameters graphically. There a some types of controls which can be dragged and modified using the mouse. @{b}Functions@{ub} Control-Type type of control: point : simple point, e.g. represting a upper-left edge of a image to be composed rect : e.g. representing a crop-region circle: e.g. representing the amount and the radius of a Twirl-effect Left,Top coordinates of the point (in coordinates of the unscaled image), upper-left edge of the rectangle, centre of the circle, Right, Bottom lower-right edge of the rectangle Angle angle of the current drawn radius of the circle Radius radius of the circle Apply apply the settings to the currently selected effect @{b}Currently supported PlugIns@{ub} BlackHole (point, circle) BGradient (point, circle) Circle (point, circle) ColorRegion (point, circle) Crop (rect) Magnet (point, circle) Rectangle (rect) Rotate (point, circle) RotateBlur (point, circle) Twirl (point, circle) @{b}Notes@{ub} 1) To grab a region for a Crop-effect it is necessary to disable the effect (pressing ) before opening the ImageCoordinates-Window. Otherwise the image shown as preview is already cropped. This "nasty" behaviour is a result of the clear preview-concept and no "bug" or similar. 2) This window can be also used to grab a color. If the control-type is set to "point" the original colors (i.e. of the untransformed image) at the current cursor-position are displayed as rgb-values. 3) Graphically specified parameters have the higher priority. So it makes no sense to change a parameter from within @{" Parameter-Settings " link ParameterSettings}-Window while the ImageCoordinates-Window is open. @endnode @node PCSinglePictureWindow @{b}PCSinglePicture-Window@{ub} This window is made to process single images and to simplify the creation of complicated Processor-scripts. @{b}Functions:@{ub} Input input image, this field is by default initialized by Wildfire's intro-picture because it must be always filled Info display some information about the selected input-image Show show the selected input-image Frame the current frame Frames number of frames, this value is only used as maximum for the scrollbar below Scrollbar another way to change the current frame number Test Process execute the current Processor-script using the current frame-number and display the result Screenmode select the screenmode used by the "Test Process"-function Apply Dimensions apply the dimensions of the current input-image to the selected operator, e.g. if the selected operator is a Twirl-effect the centre and the radius is set Preview toggle @{" Preview " link ProcessorPreview} on/off Width width of the preview Depth depth of the preview, if this value exceeds the screen-depth the screen is updated automatically Output output-image Info display some information about the generated output-image Show show the generated output-image Save Image execute the current Processor-script using the current frame-number and save the result using the saver selected in the @{" Savers-Window " link SaversWindow} Save Rendered execute the current Processor-script using the current frame-number, render it using the settings made in the Processor-Window and save the result as ILBM-image @{b}Additional Shortcuts:@{ub} toggle @{" Preview " link ProcessorPreview} on/off Test Process , decrease/increase the current frame-number The useful - and -shortcuts are also available from within every Effect-window and the Processor-Window. @endnode @node StoryBoardWindow @{b}StoryBoard-Window@{ub} From within this window the current Processor-script can be visualized. This may help you to understand the various (complicated) tutorial-scripts and is very useful while developing (and "debugging") of own special effects. Each line of the script is represented by 13 thumbnails: 1 stream-buffer 8 temp-buffers 4 3D-temp-buffers Empty buffers are left blank. Because modified 3D-buffers cannot be represented by "flat images" they are simply marked by the string "3D-Buffer". @{b}Functions:@{ub} Width width of the generated thumbnails Colors palette used for rendering Frame the frame of interest Update generate and display all thumbnails After aborting or after occurence of an error all currently generated thumbnails are drawn. This is very useful to locate "script-errors" (like uninitialized buffers). @endnode @node VariablesWindow @{b}Variables-Window@{ub} From within the Variables-Window time-dependent animation-parameters are created, modified, loaded and saved. @{b}Functions:@{ub} Add add a variable Kill kill the selected Variable Rename rename the selected Variable Envelope open the @{" Envelope-Window " link EnvelopeWindow} to graphically edit the current variable Expression specify a constant expression to be evaluated at runtime File filenames used for loading/saving of variables Load load variables from a previously saved Variables-file Save save all variables to disk Clear clear all variables @{b}Variable-Types@{ub} A variable can have only one type: either "Envelope" or "Expression". After entering a string into the "Expression"-gadget the type is changed automatically. Expressions are a very powerful feature to create scripts which are independent of the image-dimensions. The following symbols are predefined: pcWidth, - image-dimensions to be set by the @{" GetDimensions " link opGetDimensions}-PlugIn pcHeight pcFrame - current Processor-frame pcXMin, - (real) bounding-box of objects created by the @{" DataPlot " link opDataPlot}-, pcXMax, @{" LWOB " link opLWOB}-, @{" ParPlot " link opParPlot}- and @{" ZPlot " link opZPlot}-PlugIn pcYMin, pcYMax, pcZMin, pcZMax @{b}Example: Join two images of the same (unknown) size horizontally@{ub} 1. *Add a variable "width" *Enter the expression "1*pcWidth" *Add a variable "2*width" *Enter the expression "2*pcWidth" *Add a variable "height" *Enter the expression "pcHeight" 2. Load the 1st image into TEMP1 using the LoadImage-PlugIn 3. Import the Dimensions using the GetDimensions-PlugIn 4. Create a black background using the variables "2*width" and "height" using the CreateImage-PlugIn 5. Compose the 1st image using the Compose-PlugIn (left=0, back=dest=STREAM, fore=TEMP1) 6. Load the 2nd image into TEMP1 7. Compose the 2nd image using the Compose-PlugIn (left=width, back=dest=STREAM, fore=TEMP1) This may look a little bit complicated for the first time. But this script is a very useful macro and can be extended easily (e.g. to compose 3x2 images). @{b}Additional Notes@{ub} After clearing a Variable all informations about this Variable are lost - even in the Processor-script. An often-used ramp may be easily created using the expression "pcFrame/frames*endValue", e.g. "pcFrame/60*360" for a rotation from 0 to 360 degrees in 60 frames. @endnode @node SaversWindow @{b}Savers-Window@{ub} From within this window the Saver used for writing Truecolor-images is choosen. Most Savers offer an options-window which can be accessed from within the Savers-Window, too. Another purpose is to add or remove Saver-PlugIns. Saver-PlugIns contain both the save- and the load-functions for a particular image-format. Removing a Saver causes the loss of the capability to load and save images of this file-format. All unknown fileformats are handled via datatypes which is restricted to the operation of loading. Most Saver-PlugIns allow you to disable the loader-function explicitly. This may be necessary if the Wildfire-loader doesn't support a particular sub-format and you want to use datatypes. An example is the PNG-format with it's lots of options. There are many people saying "my xxx-datatype is the best, the greatest and the fastest one". If this is also your opinion you may switch the loaders permanently off saving the prefs after disabling them. @{b}Functions:@{ub} Add add an external Saver-PlugIn Delete delete the selected Saver-PlugIn SavePrefs save all of the options of the current PlugIn Options open the options-window of the selected Saver-PlugIn @{b}Available Savers@{ub} @{" ILBM " link svILBM} @{" EPS " link svEPS} @{" JPEG " link svJPEG} @{" PNG " link svPNG} @{" PPM " link svPPM} @{" ADProGIF " link svADProGIF} @endnode @node svILBM @{b}ILBM-Saver@{ub} This PlugIn saves and loads images in the ILBM-format. @{b}Options:@{ub} Compression ByteRun1/None Loader disable/enable the loader The choice of no compression is good for saving huge images (e.g. at 600dpi). In such cases there may be not enough memory to do any compression. @endnode @node svEPS @{b}EPS-Saver@{ub} This PlugIn contains a saver for uncompressed EPS-images. @{b}Options:@{ub} Resolution resolution in dpi (dots per inch) Type output-type: Gray, Color or Black&White The files generated by this PlugIns are uncompressed and therefore highly portable. For example, if you illustrate your TeX-documents using images created by this PlugIn you can view/print them using any PostScript-viewer/printer on any platform. @endnode @node svJPEG @{b}JPEG-Saver@{ub} This PlugIn saves and loads images in the JPEG-format. @{b}Options:@{ub} Quality remaining image-quality in percent Format toggle Normal/Progressive-format Optimize toggle Huffman-table-optimizing on/off Output toggle TrueColor/GrayScale-output Loader disable/enable the loader In the most cases the TrueColor-Progressive-format should be the best choice. This PlugIn uses routines of the @{b}IJG JPEG Library@{ub} developed by @{b}The Independent JPEG Group.@{ub} @endnode @node svPNG @{b}PNG-Saver@{ub} This PlugIn saves and loads images in the PNG-format. @{b}Options:@{ub} Format various formats are supported: 24Bit RGB : TrueColor-image 8Bit Color : rendered image in 256 colors (good GIF-replacement) 8Bit Gray : grayscale-image 4Bit color : rendered image in 16 colors Black&White: rendered Grayscale image in 2 colors Loader disable/enable the loader This PlugIn uses routines of the @{b}PNG Reference Library@{ub} developed by @{b}Group 42, Inc.@{ub} @endnode @node svPPM @{b}PPM-Saver@{ub} This PlugIn saves and loads images in the PPM-format. All types 1-6 (at 8 bits per pixel) are supported by both the loader and saver. @{b}Options:@{ub} Type image-type: PPM : truecolor PGM : grayscale PBM : black and white Format file-format: Raw : binary (smaller files) ASCII : displayable characters (large files) Loader disable/enable the loader @endnode @node svADProGIF @{b}ADPro-GIF-Saver@{ub} This PlugIn uses ADPro to save images in GIF-format. @{b}Options:@{ub} ADPro : Command-line which is executed automatically if ADPro doesn't run while invoking the saver, the default is "adpro:ADPro mm=1000000" Depth : image depth (1...8) Dither : turn dithering on or off Palette : use a dynamic or static palette @{b}Notes:@{ub} 1) Dithering should be switched to "on" using small depths. 2) To save a sequence of images using the same (locked) palette you have to save the first picture with the "Palette=Unlocked"-option. Otherwise a "random" palette is used. 3) In combination with the @{" ConvertImages " link ConvertImagesPlugIn}-PlugIn this saver may be very useful designing HTML-pages (gif-animations!) (Once again: Don't forget to set up the palette before saving an image-sequence with the same palette.) @endnode @node PaletteWindow @{b}Palette-Window@{ub} The Palette-Window lets you create, modify, load and save a locked Palette used by the Processor while rendering images. @{b}Functions:@{ub} File file to load/save palettes Load load the palette from the selected file, Save save the current palette to disk Red, Green, Blue values of the current selected palette-entry Copy duplicate the current color Exchange exchange two colors Spread create a color-transition between two colors Undo reset the last changed color to its previous value State toggle the state of the Palette Use make all performed changed permanent Cancel cancel all applied changes If the state of the Palette is enabled it will be used for all forthcoming render-processes. This is very important if you want to create animations with locked colors using the Processor. If you use a screendepth smaller than 8 no change of the Palette will be visible (indicated by changing screen-colors). In the other case while pressing the right mouse-button the normal screen-colors are used for the lower palette-entries which is important to locate gadgets. @endnode @node CalculatorWindow @{b}Calculator-Window@{ub} The Calculator-window is made to easily evaluate mathematical expressions and to define or view user-defined symbols. Most of Wildfire's gadgets allow you to enter mathematical expressions, too. The symbols defined from within the Calculator-Window can be accessed from this gadgets, too. @{b}Functions:@{ub} 1st string-gadget expression to evaluate Results shows the last three results Symbols list of all user-defined symbols, especially constants Load load symbols and expressions from a previously saved file Save save all symbols, expressions and the Evaluate-x-range Evaluate open the @{" Evaluate-Window " link EvaluateWindow} To define a symbol enter it's name and optionally it's value, e.g. "a=sqrt(9)/2" initializes the symbol "a" with the value 1.5. Later you could enter the expression "a/2" into of the Processor-gadgets. If the corresponding value (e.g. a zoom-factor) is of type float it will be set to 0.75 otherwise it will be rounded to 1. @endnode @node EvaluateWindow @{b}Evaluate-Window@{ub} The Evaluate-window is made to easily create evaluated data files. @{b}Functions:@{ub} Filename Filename of the generated data file Expression Expression to evaluate XMin X-start-value XMax X-end-value XStep X-increment Evaluate Start the computation View View the results using the default editor If the increment is negetive you can use a start-value which is larger than the end-value. All computations are done using double precision. @endnode @node EnvelopeWindow @{b}Envelope-Window@{ub} From within this window all time-dependent animation-parameters (called "Envelopes") are created and modified. An Envelope is a twodimensional curve wich can be specified both graphically and using constant numerical expressions which are evaluated at runtime. The x-coordinate of these twodimensional curves represents the frame-number (e.g. the time), the value of the animation-parameter is reperesented by the y-coordinate, respectively. (Numerical expressions are specified from within the @{" Variables-Window " link VariablesWindow}.) If the framber-number of the Processor exceeds the range of an Envelope the first or last y-Value is used. This means if your Envelope only contains one point the y-value of this point is used for all frame-numbers. Most operations are made using the mouse. A point is selected by clicking on it. Moving the mouse while holding the left button causes the selected point to be dragged. The whole graph can be scrolled using the cursor-keys. @{b}Functions:@{ub} XRange the displayed x-range YRange the displayed y-range X the x-value (frame-number) of the selected point Y the y-value of the selected point Add Point add a point Kill Point kill a point Type change the type of the Envelope: Linear: connect two points by straight lines Spline: use a cubic spline interpolation to connect points Bezier: surround points by bezier-curves View All view the whole Envelope File filename to save/load Envelopes Load load a previously saved Envelope Save save the current Envelope to disk Use make all performed changes permanent Cancel discard all applied changes Advanced Options open the @{" EnvelopeAdvanced-Window " link EnvelopeAdvancedWindow} to perform more complex operations @{b}Additional ShortCuts:@{ub} sort all points (of envelopes which where imported from old Process-files) @endnode @node EnvelopeAdvancedWindow @{b}EnvelopeAdvanced-Window@{ub} From within this window seldom-used but very useful transformations are applied to Envelopes. @{b}Functions:@{ub} @{u}Point-Operations:@{uu} First, Last, Step point-range affected by transformations YValue x-value used by the transformation YValue y-value used by the transformation Scale scale the Envelope by the x- and y- value specified below Shift shift the Envelope by the x- and y- value specified below @{u}Evaluate Expression:@{uu} XMin, XMax, XStep x-range used for evaluating Expression mathematical expression as function of "x" Evaluate create an Envelope using the x-range as frame-numbers and the evaluated values as y-value @{u}Import/Export:@{uu} Load Curve load a 2D-data file used by plotting programs and convert it as an Envelope Save Curve save the current Envelope as 2D-datafile Load Timecodes load a previously saved Timecodes-file and convert it as an Envelope Save Timecodes save the current Envelope as a Timecodes-file used from within the @{"Timecodes-Window" link TimecodesWindow} @endnode @node PCAddWindow @{b}PCAdd-Window@{ub} The PCAdd-Window opens after pressing the "Add"-button of the Processor-Window and allows you to select an operator which will be appended to your Processor-script. Another purpose is to add PlugIns to the internal database or to remove them. All operations can be done both using the mouse and the keyboard. Use the cursor-keys to browse through the lists and the -key to apply the selection. @{b}Functions:@{ub} Add to load one or more PlugIns from harddisk Delete to delete the selected PlugIn Select to append the selected operator to the Processor-script Cancel to cancel the selection @{b}Operator-PlugIns:@{ub} There are five basic types of Operator-PlugIns according to their purpose: @{b}Buffer:@{ub} modifying or creating buffers @{" Add " link opAdd } Add two images @{" Example " system "visage wf:doc/pictures/Add.pic"} @{" AutoCrop " link opAutoCrop } Remove outer regions with the same color @{" Compose " link opCompose } Compose two images @{" Example " system "visage wf:doc/pictures/Compose.pic"} @{" CreateImage " link opCreateImage } Create a colored image @{" Example " system "visage wf:doc/pictures/CreateImage.pic"} @{" Crop " link opCrop } Cut off a rectangular area of an image @{" DLA " link opDLA } Create a colored image @{" Example " system "visage wf:doc/pictures/DLA.pic"} @{" GSImport " link opGSImport } Run Ghostscript to import Postscript-files @{" Example " system "visage wf:doc/pictures/GSImport.pic"} @{" KillTemp " link opKillTemp } Kill a TEMP-buffer @{" LoadImage " link opLoadImage } Load an image from harddisk @{" LoadTemp " link opLoadTemp } Copy a TEMP-buffer to the main stream @{" Plasma " link opPlasma } Create a colored image @{" Example " system "visage wf:doc/pictures/Plasma.pic"} @{" ReplaceComp " link opReplaceComp } Replace a color-channel of an image @{" Example " system "visage wf:doc/pictures/ReplaceComp.pic"} @{" SaveImage " link opSaveImage } Save an image to disk @{" SaveTemp " link opSaveTemp } Copy the main stream to a TEMP-buffer @{b}2D-F/X:@{ub} performing 2D-transformations @{" BlackHole " link opBlackHole } Deform an image @{" Example " system "visage wf:doc/pictures/BlackHole.pic"} @{" Bump " link opBump } Add a third dimension to an image @{" Example " system "visage wf:doc/pictures/Bump.pic"} @{" Cartesian2Polar " link opCartesian2Polar} Transform the coordinates of an image @{" Example " system "visage wf:doc/pictures/Cartesian2Polar.pic"} @{" Displace " link opDisplace } Randomly exchange points of an image @{" Example " system "visage wf:doc/pictures/Displace.pic"} @{" Flip " link opFlip } Mirror an image along various directions @{" Example " system "visage wf:doc/pictures/Flip.pic"} @{" Halve " link opHalve } Quickly halve the dimensionsions of an image @{" Magnet " link opMagnet } Deform the image @{" Example " system "visage wf:doc/pictures/Magnet.pic"} @{" MotionBlur " link opMotionBlur } Apply a touch of motion to an image @{" Example " system "visage wf:doc/pictures/MotionBlur.pic"} @{" Pixelize " link opPixelize } Reduce the resolution of an image @{" Example " system "visage wf:doc/pictures/Pixelize.pic"} @{" Roll " link opRoll } Scroll an image along every direction @{" Example " system "visage wf:doc/pictures/Roll.pic"} @{" Rotate " link opRotate } Rotate (a portion) of the image @{" Example " system "visage wf:doc/pictures/Rotate.pic"} @{" RotateBlur " link opRotateBlur } Apply a touch of motion to an image @{" Example " system "visage wf:doc/pictures/RotateBlur.pic"} @{" Scale " link opScale } Scale an image @{" Shear " link opShear } Shear an image @{" Example " system "visage wf:doc/pictures/Shear.pic"} @{" ShiftLines " link opShiftLines } Randomly shift the lines of an image @{" Example " system "visage wf:doc/pictures/ShiftLines.pic"} @{" TileBrick " link opTileBrick } Replicate a (small) image @{" Example " system "visage wf:doc/pictures/TileBrick.pic"} @{" Twirl " link opTwirl } Deform an image @{" Example " system "visage wf:doc/pictures/Twirl.pic"} @{" Wave " link opWave } Apply a harmonic 2D-Wave to the image @{" Example " system "visage wf:doc/pictures/Wave.pic"} @{" Wind " link opWind } Blur the edges of an image @{" Example " system "visage wf:doc/pictures/Wind.pic"} @{b}Color:@{ub} applying color-transformations @{" Alpha " link opAlpha } Color Changes using an Alpha Channel @{" Example " system "visage wf:doc/pictures/Alpha.pic"} @{" Antique " link opAntique } Change the colors to look "antique" @{" Example " system "visage wf:doc/pictures/Antique.pic"} @{" Balancing " link opBalancing } Change the colors using ddifferent methods @{" Example " system "visage wf:doc/pictures/Balancing.pic"} @{" BGradient " link opBGradient } Advanced balancing @{" Example " system "visage wf:doc/pictures/BGradient.pic"} @{" ColorRegion " link opColorRegion } Grab a region of similar colors @{" Example " system "visage wf:doc/pictures/ColorRegion.pic"} @{" ColorToGray " link opColorToGray } Convert an image into grayscale @{" Example " system "visage wf:doc/pictures/ColorToGray.pic"} @{" Convolve " link opConvolve } Apply a convolution-filter @{" Example " system "visage wf:doc/pictures/Convolve.pic"} @{" EdgeDetect " link opEdgeDetect } Advanced edge-detection @{" Example " system "visage wf:doc/pictures/EdgeDetect.pic"} @{" Emboss " link opEmboss } Change an image to look like made of stone @{" Example " system "visage wf:doc/pictures/Emboss.pic"} @{" LineArt " link opLineArt } Create a LineArt-effect @{" Example " system "visage wf:doc/pictures/LineArt.pic"} @{" LUT " link opLUT } Change the colors using a LookUpTable @{" Example " system "visage wf:doc/pictures/LUT.pic"} @{" MedianFilter " link opMedianFilter } Apply a medianfilter to an image @{" Negative " link opNegative } Turn dark portions into light portions @{" Example " system "visage wf:doc/pictures/Negative.pic"} @{" Neon " link opNeon } Add glow to an image @{" Example " system "visage wf:doc/pictures/Neon.pic"} @{" Noise " link opNoise } Apply random noise to an image @{" Example " system "visage wf:doc/pictures/Noise.pic"} @{" OilTransfer " link opOilTransfer } Change the image to look like "oilpainted" @{" Example " system "visage wf:doc/pictures/OilTransfer.pic"} @{" Posterise " link opPosterise } Reduce the color-information of an image @{" Example " system "visage wf:doc/pictures/Posterise.pic"} @{" RIP " link opRIP } Romove isolated pixels @{" SwapRGB " link opSwapRGB } Swap the color-components of an image @{" Example " system "visage wf:doc/pictures/SwapRGB.pic"} @{" Threshold " link opThreshold } Create alpha channels @{" Example " system "visage wf:doc/pictures/Threshold.pic"} @{b}3D-F/X:@{ub} performing complex 3D-transformations on 3D-temp-buffers or images @{" Axis3D " link opAxis3D } Add axes in very high quality to plots @{" Example " system "visage wf:doc/pictures/Axis3D.pic"} @{" Bump3D " link opBump3D } Real Bump-mapping @{" Example " system "visage wf:doc/pictures/Bump3D.pic"} @{" ColorCube " link opColorCube } 3D color- or alpha-space @{" Example " system "visage wf:doc/pictures/ColorCube.pic"} @{" Cube " link opCube } Wrap an image onto a cube @{" Example " system "visage wf:doc/pictures/Cube.pic"} @{" DataPlot " link opDataPlot } Plot threedimensional data-sets @{" Example " system "visage wf:doc/pictures/DataPlot.pic"} @{" Genlock3D " link opGenlock3D } Threedimensional genlock @{" Example " system "visage wf:doc/pictures/Genlock3D.pic"} @{" Join3D " link opJoin3D } Join two 3D-temp-buffers @{" Example " system "visage wf:doc/pictures/Join3D.pic"} @{" KillTemp3D " link opKillTemp3D } Kill a 3D-temp-buffer @{" LWOB " link opLWOB } Import Lightwave-objects @{" Example " system "visage wf:doc/pictures/LWOB.pic"} @{" Magnet3D " link opMagnet3D } Grab and drag portions of an image @{" Example " system "visage wf:doc/pictures/Magnet3D.pic"} @{" Morph " link opMorph } Interpolate between two objects @{" Example " system "visage wf:doc/pictures/Morph.pic"} @{" ParPlot " link opParPlot } Plot threedimensional parametric functions @{" Example " system "visage wf:doc/pictures/ParPlot.pic"} @{" Perspective " link opPerspective } Add perspective to an image @{" Example " system "visage wf:doc/pictures/Perspective.pic"} @{" SetColor " link opSetColor } Modify the color of objects @{" Example " system "visage wf:doc/pictures/SetColor.pic"} @{" Sphere " link opSphere } Wrap an image onto a complete sphere @{" Example " system "visage wf:doc/pictures/Sphere.pic"} @{" Transform3D " link opTransform3D } Perform standard 3d-transformations @{" Example " system "visage wf:doc/pictures/Transform3D.pic"} @{" Triangulate " link opTriangulate } Convert images into smooth phong-object @{" Example " system "visage wf:doc/pictures/Triangulate.pic"} @{" Twirl3D " link opTwirl3D } Apply a Twirl-effect along any axis @{" Example " system "visage wf:doc/pictures/Twirl3D.pic"} @{" Twist " link opTwist } Deform an image using rotation @{" Example " system "visage wf:doc/pictures/Twist.pic"} @{" Water " link opWater } Apply an anharmonic water-wave to an image @{" Example " system "visage wf:doc/pictures/Water.pic"} @{" Wave3D " link opWave3D } Apply a harmonic wave to an image @{" Example " system "visage wf:doc/pictures/Wave3D.pic"} @{" Wrap " link opWrap } Wrap the image on a sphere or a tube @{" Example " system "visage wf:doc/pictures/Wrap.pic"} @{" ZPlot " link opZPlot } Plot threedimensional functions @{" Example " system "visage wf:doc/pictures/ZPlot.pic"} @{b}Misc:@{ub} very special or seldom-used PlugIns @{" ARexx " link opARexx } Exchange images with other applications @{" Circle " link opCircle } Draw a circle @{" Example " system "visage wf:doc/pictures/Circle.pic"} @{" Comment " link opComment } Add a comment to the Processor-script @{" FieldRendering " link opFieldRendering } Convert images into "fields" @{" GetDimensions " link opGetDimensions } Apply image-dimensions to variables @{" Raster " link opRaster } Apply a black raster to an image @{" Example " system "visage wf:doc/pictures/Raster.pic"} @{" Rectangle " link opRectangle } Draw a rectangle @{" Example " system "visage wf:doc/pictures/Rectangle.pic"} @{" SetBackGround " link opSetBackGround } Change the global background @{" Text " link opText } Render text using various styles @{" Example " system "visage wf:doc/pictures/Text.pic"} Note: After pressing one of the @{" Example " system "visage wf:Motivation2.jpg"}-buttons the program "@{"Visage" link Visage}" is started to display a corresponding example. @{b}Operator-Parameters:@{ub} Numerical parameters (like dimensions, angles, colors) are specified from within the @{" Parameter-Settings " link ParameterSettings}- and @{" Color-Settings " link ColorSettings}-Window. @endnode @node opAdd @{b}Add-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Add.pic"} This operator adds or subtracts two images. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input1 STREAM, TEMP1, ..., TEMP8 1st source buffer Input2 STREAM, TEMP1, ..., TEMP8 2nd source buffer Output STREAM, TEMP1, ..., TEMP8 destination buffer Mode ADD, SUBTRACT add or subtract the images @endnode @node opCompose @{b}Compose-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Compose.pic"} This operator composes two images using several genlock-methods and optionaly an alpha-channel. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Background STREAM, TEMP1, ..., TEMP8 background image Foreground STREAM, TEMP1, ..., TEMP8 foreground image Destination STREAM, TEMP1, ..., TEMP8 destination buffer Alpha NONE, STREAM, TEMP1, ..., TEMP8 optional alpha buffer Left pixels left edge of the foreground image Top pixels top edge of the foreground image Mix 0...100 transparency of the foreground image CentreX ON, OFF center the foreground horizontally CentreY ON, OFF center the foreground vertically Red1, 0...255 genlock-color 1 Green2, 0...255 Blue 0...255 Red2, 0...255 genlock-color 2 Green2, 0...255 Blue2 0...255 Genlock type of genlock: NONE no genlock SINGLE COLOR normal genlock using color 1 INRANGE extended genlock using all colors inside the range color1...color2 OUTRANGE extended genlock using all colors outside the range color1...color2 @endnode @node opCreateImage @{b}CreateImage-Operator@{ub} @{" Example " system "visage wf:doc/pictures/CreateImage.pic"} This operator creates an image with an optional color-transition. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Output STREAM, TEMP1, ..., TEMP8 output-buffer Width pixels width of the generated image Height pixels height of the generated image Palette (gadget) select one of the four edges Red, 0...255 color of the selected edge Green, 0...255 Blue 0...255 HCopy (gadget) copy the selected color horizontally VCopy (gadget) copy the selected color vertically HVCopy (gadget) apply the selected color to all four edges @endnode @node opNeon @{b}Neon-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Neon.pic"} This operator adds a glow effect to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Output STREAM, TEMP1, ..., TEMP8 output-buffer Red, 0...255 color of the part of the image Green, 0...255 to midify Blue 0...255 Radius pixels radius of the effect Tolerance 0...1.0 color-tolerance Intensity 0...1.0 intensity Algorithm algorithm to use TRIVIAL use a algorithm like DPaint to surround the affected image-cluster HK-CLUSTER use a Hoshen-Kopelman-algorithm [1] to detect and modify individual clusters [1] Phys. Rev.B14, 3428 (1976) @endnode @node opCrop @{b}Crop-Operator@{ub} This operator cuts out a rectangular area of an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Output STREAM, TEMP1, ..., TEMP8 output buffer Left pixels left edge of the rectangle Top pixels top edge of the rectangle Width pixels width of the rectangle Height pixels height of the rectangle @{b}Notes@{ub} 1) This PlugIn supports "parameter-dragging" from within the @{" ImageCoordinates-Window " link ImageCoordinatesWindow}. @endnode @node opAutoCrop @{b}AutoCrop-Operator@{ub} This operator removes outer regions with the same color. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Output STREAM, TEMP1, ..., TEMP8 output buffer @endnode @node opKillTemp @{b}KillTemp-Operator@{ub} This operator clears a TEMP-buffer and frees it's memory. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Buffer TEMP1, ... TEMP8 TEMP-buffer to kill @endnode @node opKillTemp3D @{b}KillTemp3D-Operator@{ub} This operator clears a 3D-temp-buffer and frees it's memory. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Buffer TEMP3D1, ... TEMP3D4 3d-temp-buffer to kill @endnode @node opLoadImage @{b}LoadImage-Operator@{ub} This operator loads an image or an image-sequence from disk. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Output STREAM, TEMP1, ..., TEMP8 output buffer Sequence string complete filename of an single image or base-filename of an image-sequence Loop integer length of the image-sequence Shift integer shift-value for the filenames of an image-sequence Show (gadget) show the selected image @endnode @node opLoadTemp @{b}LoadTemp-Operator@{ub} This operator replaces the input-stream with a TEMP-buffer. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Buffer TEMP1, ... TEMP8 TEMP-buffer which holds the image to apply @endnode @node opPlasma @{b}Plasma-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Plasma.pic"} This operator creates an image using a fractal algorithm. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Output STREAM, TEMP1, ..., TEMP8 output buffer Width pixels width of the generated image Height pixels height of the generated image Dimension integer fractal dimension which affects the smoothness of the fractal Seed integer parameter which affects the shape @endnode @node opDLA @{b}DLA-Operator@{ub} @{" Example " system "visage wf:doc/pictures/DLA.pic"} This operator creates an image using a "diffusion limited aggregation"-algorithm [1]. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Output STREAM, TEMP1, ..., TEMP8 output buffer Width pixels width of the generated image Height pixels height of the generated image Iterations integer number of iterations which affects the size of the generated cluster Seed integer parameter which affects the shape Red, 0...255 color of the generated image Green, 0...255 Blue 0...255 [1] T.A. Witten; L.M. Sander, Phys. Rev. Lett. 47, 1400 (1981) @endnode @node opReplaceComp @{b}ReplaceComp-Operator@{ub} @{" Example " system "visage wf:doc/pictures/ReplaceComp.pic"} This operator replaces a color-channel of an image with the red-channel of an other image. The main purpose of this PlugIn is to create Stereo-3D-Images. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input1 STREAM, TEMP1, ..., TEMP8 input buffer Input2 STREAM, TEMP1, ..., TEMP8 image which replaces the selected channel Output STREAM, TEMP1, ..., TEMP8 output buffer Component RED, GREEN, BLUE color-channel to replace @endnode @node opSaveImage @{b}SaveImage-Operator@{ub} This operator saves images to harddisk. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 image to save File string filename Numbering string C-formatstring, if this string is non-empty the current frame-number is appended to filename @endnode @node opSaveTemp @{b}SaveTemp-Operator@{ub} This operator copies the content of the input-stream to a TEMP-buffer. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Buffer TEMP1, ... TEMP8 Buffer to copy to @endnode @node opBlackHole @{" Example " system "visage wf:doc/pictures/BlackHole.pic"} @{b}BlackHole-Operator@{ub} This operator contracts the whole image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer CentreX, pixels centre of the effect CentreY pixels Amount pixels amount, large values may cause the whole image to disappear Radius pixels parameter affecting the local deformation Zoom -10.0...10.0 zoom-factor for the whole image @{b}Notes@{ub} 1) This PlugIn supports "parameter-dragging" from within the @{" ImageCoordinates-Window " link ImageCoordinatesWindow}. @endnode @node opCartesian2Polar @{b}Cartesian2Polar-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Cartesian2Polar.pic"} This operator transforms the cartesian image-coordinates into polar coordinates. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Output STREAM, TEMP1, ..., TEMP8 output buffer R0 pixels starting radius Phi0 degrees starting angle Zoom -10.0...10.0 zoom factor for the whole image @endnode @node opDisplace @{b}Displace-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Displace.pic"} This operator swaps points of an image randomly. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Radius pixels largest distance between two points to swap Probability 0...100 probability of swapping in percent Seed integer start-value for the random number generator @endnode @node opWind @{b}Wind-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Wind.pic"} This operator blurs pixels of high contrast (i.e. edges) along straight lines. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Direction LEFT, RIGHT direction of the effect Intensity pixels average blur-length Probability 0...100 blur-probability Seed integer start-value for the random number generator @endnode @node opFlip @{b}Flip-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Flip.pic"} This operator mirrors an image along a specified axis. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Axis X, Y, XY mirror-axis @endnode @node opHalve @{b}Halve-Operator@{ub} This operator halves the dimensions of an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer @endnode @node opMagnet @{b}Magnet-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Magnet.pic"} This operator applies a local contraction or expansion to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer CentreX pixels centre of the effect CentreY pixels Amount pixels (about -20...20) amount of the deformation, positive values cause a contraction, negative an expansion Damping float parameter which controls the fall-off of the deformation Zoom -10.0...10.0 zoom-factor for the whole image @{b}Notes@{ub} 1) This PlugIn supports "parameter-dragging" from within the @{" ImageCoordinates-Window " link ImageCoordinatesWindow}. @endnode @node opMotionBlur @{b}MotionBlur-Operator@{ub} @{" Example " system "visage wf:doc/pictures/MotionBlur.pic"} This operator applies a touch of motion to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer DeltaX, pixels direction and amount of the effect DeltaY pixels @endnode @node opPixelize @{b}Pixelize-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Pixelize.pic"} This operator reduces the resolution of an image creating rectangles. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Width pixels width of the rectangles to create Height pixels height of the rectangles to create Centre ON, OFF centre the rectangles, this options should be switched off if the size of the rectangle varies with time Grid OFF, XY, X, Y type of the optional grid to create Size pixels thickness of the grid to create Red, 0...255 base color of the grid Green, 0...255 Blue 0...255 DLeft, 0.0...1.0 color variation of the grid to produce DRight 0.0...1.0 a threedimensional look, set all values DTop 0.0...1.0 to zero to create a "flat" grid DBottom 0.0...1.0 @endnode @node opTileBrick @{b}TileBrick-Operator@{ub} @{" Example " system "visage wf:doc/pictures/TileBrick.pic"} This operator replicates a (small) image to create patterns useful as backgrounds or alpha channels. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Width, pixels dimension of the created pattern Height Shift pixels offset between two rows @{b}Notes@{ub} 1) To create the "TileBrick"-shape use a shift-value of ("input-width")/2. @endnode @node opRoll @{b}Roll-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Roll.pic"} This operator scrolls an image into a specified direction. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer DeltaX, pixels scroll direction and amount DeltaY pixels Wrap ON, OFF toggle wrapping on/off @endnode @node opRotate @{b}Rotate-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Rotate.pic"} This operator rotates a circular region of an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer CentreX, pixels centre of the circle CentreY pixels Radius pixels radius of the circle Amount degrees rotate-angle Zoom -10.0...10.0 zoom-factor for the rotated region @{b}Notes@{ub} 1) This PlugIn supports "parameter-dragging" from within the @{" ImageCoordinates-Window " link ImageCoordinatesWindow}. @endnode @node opRotateBlur @{b}RotateBlur-Operator@{ub} @{" Example " system "visage wf:doc/pictures/RotateBlur.pic"} This operator adds a touch of motion to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer CentreX, pixels centre of the blurred circle CentreY pixels Radius pixels radius of the circle Amount degrees blur-amount, large-values like 60 cause a very long computation time @{b}Notes@{ub} 1) This PlugIn supports "parameter-dragging" from within the @{" ImageCoordinates-Window " link ImageCoordinatesWindow}. @endnode @node opScale @{b}Scale-Operator@{ub} This operator scales up or down images. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Width pixels/percent horizontal size of the generated image Height pixels/percent vertical size of the generated image Type PIXELS, PERCENT choose if the size-values are in pixels or percent Aspect choose if you want to keep the aspect or not IGNORE scale the image to the specified values TAKEWIDTH scale the image to the specified width-value and a computed height-value keeping the aspect TAKEHEIGHT scale the image to specified height-value and computed width-value keeping the aspect @endnode @node opShear @{b}Shear-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Shear.pic"} This operator shears an image with additional damping. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer OriginX, pixels shear-centre where no damping occurs OriginY pixels Amount pixels shear-amount Zoom -10.0...10.0 zoom-value for the whole image Axis X, Y shear-direction Damping ON, OFF toggle damping on/off Damping float damping-value @endnode @node opShiftLines @{b}ShiftLines-Operator@{ub} @{" Example " system "visage wf:doc/pictures/ShiftLines.pic"} This operator shifts the lines of an image with optional jitter-effect. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Direction X, Y shift-direction Jitter ON, OFF toggle jitter on/off Shift pixels shift-value Amount pixels jitter-amount Probability 0...100 probability for the jitter-effect Seed integer start -value for the random number generator @endnode @node opTwirl @{b}Twirl-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Twirl.pic"} This operator applies a nonlinear deformation to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer FallOff IN, OUT radial direction of the fall-off of the deformation CentreX, pixels centre of the effect CentreY pixels Radius pixels radius of the affected circular region of the image Amount degrees twirl amount, very large value like 1000 are allowed Power float parameter describing the local deformation, large values like 6.0 concentrate the deformation around the centre of the circle Zoom -10.0...10.0 zoom-factor for the affected circular region @endnode @node opWave @{b}Wave-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Wave.pic"} This operator applies a harmonic wave to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer CentreX, pixels centre of the wave, the point CentreY pixels with no damping Amplitude pixels amplitude of the wave Phase degrees phase of the wave Wavelength pixels wavelength Shift pixels diagonal-shift-parameter Zoom -10.0...10.0 zoom-value for the whole image Damping ON, OFF toggle damping on/off Damping float damping-value Axis X, Y wave-direction Frame integer>0 current frame Frames integer>0 frame-number describing a whole cycle @endnode @node opAlpha @{b}Alpha-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Alpha.pic"} This operator modifies the brightness of an image using an alpha-channel. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Alpha STREAM, TEMP1, ..., TEMP8 alpha buffer Left pixels left edge of the alpha image Top pixels top edge of the alpha image @endnode @node opAntique @{b}Antique-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Antique.pic"} This operator turns the colors of an image to look "anitique". @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer @endnode @node opBalancing @{b}Balancing-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Balancing.pic"} This operator allows you modify the colors of an image using different methods. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Red -255...255 shift-value for the red component Green -255...255 shift-value for the green component Blue -255...255 shift-value for the green component Contrast -255...255 contrast-value, negative values decrease the contrast Bright -255...255 shift value for all color-channels Gamma -255...255 gamma-value Saturation -255...255 color saturation @endnode @node opBGradient @{b}BGradient-Operator@{ub} @{" Example " system "visage wf:doc/pictures/BGradient.pic"} This operator allows you to modify image-colors smoothly. It features all methods of the @{" Balancing " link opBalancing}-PlugIn. But instead of applying a fixed set of parameters to the whole image a smooth gradient (parallel or radial) is created and applied. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Mode type of balancing: RED shift the red components GREEN shift the green components BLUE shift the green components CONTRAST change the contrast BRIGHTNESS shift all color components GAMMA gamma-correction SATURATION change the color saturation X1, pixels position of point 1 ("source") Value1 -255...255 intensity at point 1 X2, pixels position of point 2 ("destination") Value2 -255...255 intensity at point 2 Transition type of transition (shape): PARALLEL "normal" gradient RADIAL circular shape @{b}Notes@{ub} 1) In "Transition=RADIAL"-mode the point 1 is the centre of the circular shape. 2) Because the coordinates of both points can be adjusted freely linear gradients in any direction can be created. (The current direction is indicated in the Realtime-Preview-Window.) 3) Using the brighness-mode you may fade in/out animations in a very impressive way. 4) The gamma-mode seems to be relatively slow. This is because lots of pow(x,a)-values have to calculated. 5) This PlugIn supports "parameter-dragging" from within the @{" ImageCoordinates-Window " link ImageCoordinatesWindow}. @endnode @node opColorToGray @{b}ColorToGray-Operator@{ub} @{" Example " system "visage wf:doc/pictures/ColorToGray.pic"} This operator converts an image into grayscale. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Weights weight of the red, green and blue component LUMINANCE use luminance weights AVERAGE use for all components the same weight CUSTOM use custom weights Red, 0...10000 custom weights, the sum of this Green, 0...10000 three values should be 10000 Blue 0...10000 @endnode @node opConvolve @{b}Convolve-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Convolve.pic"} This operator applies a 3x3- or 5x5 convolution-matrix to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Mix 0...100 intensity of the generated effect Shift -255...255 shift-value which is applied to the result for each pixel, this makes it for example possible to turn negative results into the valid range 0...255 without loosing details Size 3x3, 5x5 toggle the size of the matrix File string filename for loading/saving a matrix Load (gadget) load a matrix in Wildfire's or ADPro's format Save (gadget) save the current matrix to disk @endnode @node opEmboss @{b}Emboss-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Emboss.pic"} This operator converts an image in a gray relief @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Direction NORTHWEST, NORTHEAST, direction of the "lightsource", different SOUTHEST, SOUTHEAST directions may cause results looking extremely different @endnode @node opColorRegion @{b}ColorRegion-Operator@{ub} @{" Example " system "visage wf:doc/pictures/ColorRegion.pic"} This operator detects a region of similar colors around a specified centre. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer CentreX, centre CentreY Tolerance 0.0...1.0 tolerance-level which defines "similar" pixels INCLUDE remove all pixels which don't belong to the detected area EXCLUDE remove the detected area from the image @{b}Notes@{ub} 1) This operator is very useful for advanced Compose-operations or to modify colors of a specified region (e.g. to turn the eyes of a girl into green) 2) Currently this PlugIn is only in a beta-state. (The used complicated algorithms are not optimized yet.) 3) This PlugIn supports "parameter-dragging" from within the @{" ImageCoordinates-Window " link ImageCoordinatesWindow}. @endnode @node opLUT @{b}LUT-Operator@{ub} @{" Example " system "visage wf:doc/pictures/LUT.pic"} This operator applies a LookUpTable to an image. Unlike to all other image-processors LUT's are represented by Envelopes and can be morphed ! There are 6 Envelopes: a Start- and an End-Envelope for every component. After specifying the number of frames the Start-Envelope is morphed into the End-Envelope. Different point-counts are possible. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Mode EDIT, VIEW toggle Edit/View-mode Type LINEAR, SPLINE, BEZIER type of the spline of the current channel Component R, G, B current component RGB (gadget) apply the current Envelope to all components Preset (may change) choose a preset Apply (gadget) apply the selected preset to the current component Position START, END modify the Start- or the End-Envelope Both (gadget) apply the Envelope of the current component as End- and as Start-Envelope Frames integer>0 number of frames used for morphing Frame integer>0 current frame displayed in view-mode MirrorX (gadget) mirror the current Envelope along the x-axis MirrorY (gadget) mirror the current Envelope along the y-axis MirrorXY (gadget) flip the current Envelope along the diagonal MoveX (gadget) shift the current Envelope by the specified amount in x-direction MoveY (gadget) shift the current Envelope by the specified amount in y-direction Amount integer shift-value File string file used for loading/saving envelopes Load (gadget) load an Envelope Save (gadget) save the current Envelope to disk There are two modes: the View- and the Edit-mode. In Edit-mode all changes are applied, in view mode the morphing of the splines is visualized. In this mode you can change the current-frame- number both using the scrollbar and the "Frame"-gadget. If you want to create your Envelopes using the @{"Envelope-Window" link EnvelopeWindow} the only restriction is that all values must be in the range 0..255. The first point must have the x-coordinate 0, the last one the coordinate 255. @endnode @node opMedianFilter @{b}MedianFilter-Operator@{ub} This operator applies a median-filter to the image. (In the most cases there will be no visible change.) @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Rect pixels size of the rectangle scanned for every pixel @endnode @node opNegative @{b}Negative-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Negative.pic"} This operator turns the colors of an image into negative ones. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer @endnode @node opRIP @{b}RIP-Operator@{ub} This operator removes all isolated pixels from an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer @endnode @node opLineArt @{b}LineArt-Operator@{ub} @{" Example " system "visage wf:doc/pictures/LineArt.pic"} This operator applies the well-known LineArt-effect to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Mode GRAY, COLOR, INVGRAY , INVCOLOR algorithm to use @endnode @node opEdgeDetect @{b}EdgeDetect-Operator@{ub} @{" Example " system "visage wf:doc/pictures/EdgeDetect.pic"} This operator uses an advanced algorithm to detect edges within an image. In contrary to commonly applied methods (e.g. a simple convolution-matrix) the detected edges are left in original colors. Furthermore, "weak edges" can be suppressed adjusting the contrast-value. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Contrast 0...255 minimum "intensity" of edges @{b}Notes@{ub} 1) Very small contrast values usually produce no edges but in some cases very "interesting" images. 2) Nasty "dots" can be removed using the @{" RIP " link opRIP}-PlugIn 3) All intensities are measured using luminance weights @endnode @node opNoise @{b}Noise-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Noise.pic"} This operator applies random noise to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Intensity color intensity of the noise Probability 0...100 noise-probability Seed integer start-value for the random number generator @endnode @node opOilTransfer @{b}OilTransfer-Operator@{ub} @{" Example " system "visage wf:doc/pictures/OilTransfer.pic"} This operator applies the OilTransfer-algorithm to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Rect pixels size of the rectangle scanned for every pixel @endnode @node opPosterise @{b}Posterise-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Posterise.pic"} This operator reduces the number of bits per byte for every pixel of the image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Bits 1...7 number of bits per byte, a value of 8 would cause no change @endnode @node opSwapRGB @{b}SwapRGB-Operator@{ub} @{" Example " system "visage wf:doc/pictures/SwapRGB.pic"} This operator swaps the color-channels of an image @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Mode RBG, GRB, GBR, BRG, BGR swap-mode @endnode @node opThreshold @{b}Threshold-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Threshold.pic"} This operator converts an image into black&white using a grayscale-level, this may be especially useful for the creation of alpha-channels. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Level 0...255 grayscale-level, all pixels with a brightness higher than this value are turned into white ones, all other are cleared @endnode @node opBump @{b}Bump-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Bump.pic"} This operator uses a 2nd image to add height-information which is visualized using a single lightsoure to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer HeightMap STREAM, TEMP1, ..., TEMP8 image used to create the height-information Amount integer height-value corresponding to a brightness of 255 LightX, pixels coordinates of the lightsource LightY, pixels LightZ pixels Intensity float light-intensity (1.0=normal) Left pixels left edge of the height-map Top pixels top edge of the height-map @endnode @node opCube @{b}Cube-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Cube.pic"} This operator wraps an image or a 3d-temp-buffer onto a cube. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Size pixels size of the cube Fold ON, OFF create the cube "folding" the image using 5 dynamic angles (like a parcel) Alpha4, degrees face-angles in fold-mode Alpha5, (see below) Alpha2, Alpha6, Alpha1 The image is sliced into 6 parts (2 rows, 3 columns) which are mapped onto the six surfaces of the cube. To create a cube with 6 different images simply compose them together and use the result as input for the Cube-operator. In parcel-mode (fold=ON) the image is deformed in two steps. In the 1st step the it is scliced as follows: ___ | | | 1 | ___________ |___|___ | | | | | | | | 1 | 2 | 3 | \ | 2 | 6 | |___|___|___| =====\ ___|___|___| | | | | =====/ | | | | 4 | 5 | 6 | / | 5 | 3 | |___|___|___| |___|___| | | | 4 | |___| After that all faces except face 3 are rotated by the 5 angles creating the "parcel-like" behaviour: Angle4: angle between face 4 and 3 Angle5: angle between face 5 and 3 Angle2: angle between face 2 and 3 Angle6: angle between face 6 and 2 Angle1: angle between face 1 and 2 Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opTriangulate @{b}Triangulate-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Triangulate.pic"} This operator converts images (at high quant3D-values) into smooth phong-objects. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input TEMP3D1, ..., TEMP3D4 input buffer Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opSetColor @{b}SetColor-Operator@{ub} @{" Example " system "visage wf:doc/pictures/SetColor.pic"} This operator allows to modify the colors of any 3d-object. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input TEMP3D1, ..., TEMP3D4 input buffer Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Red, 0...255 color to apply Green, Mix 0...100 transparency The transparency-option especially makes sense for objects with more than unique color such as animals. Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opMorph @{b}Morph-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Morph.pic"} This operator interpolates between two objects to creat a so-called "morph-object". Both points and object-colors are interpolated. The source- and the destination-object should have the same point- and face-count. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input1 TEMP3D1, ..., TEMP3D4 source-object Input1 TEMP3D1, ..., TEMP3D4 destination-object Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 Frames integer>1 number of frames Frame 1...frames current frame A nice application of this feature is to "morph" between two different functions created by the ZPlot-PlugIn. Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opDataPlot @{b}DataPlot-Operator@{ub} @{" Example " system "visage wf:doc/pictures/DataPlot.pic"} This operator reads in a 3D-dataset in gnuplot-format and converts into a 3D-object which may be rendered in conjunction with the ColorCube-Operator and using phong-shading. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 File string filename xQuant, integer quantization-values yQuant xScale, float scale-values yScale, zScale Red, 0...255 object-color Green, Grid ON, OFF draw an additional grid GRed, 0...255 grid-color GGreen, GGBlue The quantization-values are a nice feature if your dataset has an extreme high resolution but you want to plot it with a visible grid. So after loading the dataset is reduced to a resolution of xQuant*yQuant. To disable this feature just enter very high quantization values like 1000. The scale-values are sometimes necessary to solve the problem of very different axis-scales (e.g. "mm" and "s" as shown in the example-picture). Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. Important Note: This PlugIn uses a coordinate-system which is much more "handy" than Wildfire's standard coordinate-system to create function-plots: y^ z^ | /z | /y |/ |/ ---> x ---> x "standard" DataPlot Because this coordinate system is only used while creating the objects all view-settings work as usual. @endnode @node opZPlot @{b}ZPlot-Operator@{ub} @{" Example " system "visage wf:doc/pictures/ZPlot.pic"} This operator creates an 3D-object plotting threedimensional functions f(x,y) such as sin(x*x+y*y). The created object may be rendered in conjunction with the ColorCube-Operator and using phong-shading later. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 Expression valid expression in x and y function f(x,y) to evaluate xMin, float x-range xMax, float xCount integer yMin, float y-range yMax, float yCount integer Red, 0...255 object-color Green, Grid ON, OFF draw an additional grid GRed, 0...255 grid-color GGreen, GGBlue Listview (gadget) some nice presets Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. Important Note: This PlugIn uses a coordinate-system which is much more "handy" than Wildfire's standard coordinate-system to create function-plots: y^ z^ | /z | /y |/ |/ ---> x ---> x "standard" ZPlot Because this coordinate system is only used while creating the objects all view-settings work as usual. @endnode @node opParPlot @{b}ParPlot-Operator@{ub} @{" Example " system "visage wf:doc/pictures/ParPlot.pic"} This operator creates an 3D-object evaluating threedimensional parametric functions {x(u,v),y(u,v),z(u,v)} such as a torus or the Mobius strip. The created object may be rendered in conjunction with the ColorCube-Operator and using phong-shading later. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 x valid expression in u and v coordinate x(u,v) to evaluate y valid expression in u and v coordinate y(u,v) to evaluate z valid expression in u and v coordinate z(u,v) to evaluate uMin, float u-range uMax, float uCount integer vMin, float v-range vMax, float vCount integer Red, 0...255 object-color Green, Grid ON, OFF draw an additional grid GRed, 0...255 grid-color GGreen, GGBlue Listview (gadget) some nice presets Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. Important Note: This PlugIn uses a coordinate-system which is much more "handy" than Wildfire's standard coordinate-system to create function-plots: y^ z^ | /z | /y |/ |/ ---> x ---> x "standard" ParPlot Because this coordinate system is only used while creating the objects all view-settings work as usual. @endnode @node opColorCube @{b}ColorCube-Operator@{ub} @{" Example " system "visage wf:doc/pictures/ColorCube.pic"} This operator is one of the most powerful and complicated features of Wildfire. It allows you to add a threedimensional color- or alpha-space to objects or images. This is done computing the bounding box ("cube") of the affected object, putting a different color on each of the 8 points of the "cube" and performing a 3d-transition between these 8 colors. Using the alpha-mode only the brightness of the object is modified. This makes it for example possible to wrap objects onto images or to add fog to a scene. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input TEMP3D1, ..., TEMP3D4 input buffer Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Red, any (!) value color of the selected point Green, of the cube Palette (gadget) select the current point of the cube Point (view only) shows the coordinates of the current point XCopy, (gadget) copy the current color along the YCopy, specified direction ZCopy Mode COLOR, ALPHA type of the generated color-space Mix 0...100 transparency in COLOR-mode size CURRENT, ACTUAL compute the size immediately (CURRENT) or while rendering (ACTUAL) @{b}Notes@{ub} Each field of the palette-gadget represents one point of the "cube" as follows: 3 /--------- 4 / | / / | / | Palette-gadget: 1 ---------/2 | _______________ | | | | | | | | | | | | | | 1 | 2 | 3 | 4 | | |-----|--| |___|___|___|___| | / 7 | / 8 | | | | | | / | / | 5 | 6 | 7 | 8 | |/ |/ |___|___|___|___| --------- 5 6 One- and two-point-polygons (e.g. the optional grid created by one of the Plot-PlugIns) are not affected by this operator. The size-option controls the transformation-behaviour of the colors. Using the mode "size=CURRENT" the texture is fixed to the current object-size and the color "grows" or "shrinks" with the object. The alternative mode "size=ACTUAL" always caused the colorCube to be scaled to fit the whole (transformed) object. Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opSphere @{b}Sphere-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Sphere.pic"} This operator wraps an image or 3d-temp-buffer onto a complete sphere. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Radius radius of the sphere (in pixels) Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opTwirl3D @{b}Twirl3D-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Twirl3D.pic"} This operator performs a Twirl-effect to an image or 3d-temp-buffer along a selected axis. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Axis X, Y, Z axis to rotate around Radius pixels twirl-radius Amount degress twirl amount, very large values like 1000 are allowed Power float parameter describing the local deformation, large values like 6 concentrate the deformation around the centre of the circle OriginX, pixels centre of the effect OriginY, pixels OriginZ pixels Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opTwist @{b}Twist-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Twist.pic"} This operator rotates a image along a specified axis with varying rotation-angle to create a helix-like shape. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Axis X, Y, Z axis to rotate around Amount degrees maximum rotate-angle Dist pixels distance of the effect OriginX, pixels the point at which the rotation starts OriginY, pixels OriginZ pixels Negative Dist-values are allowed and cause the propagation along the opposite direction. Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opMagnet3D @{b}Magnet3D-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Magnet3D.pic"} This operator simulates the dragging of a point of the input-image or -3d-temp-buffer using a model of plasticity. This makes it possible to add a third dimension to selected parts of an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time SrcX, pixels coordinates of the point to drag SrcY, pixels SrcZ pixels DestX, pixels destination of the point DestY, pixels DestZ pixels Shape SMOOTH, SHARP selects the kind of deformation Strength float represents the elasticity of the "material", larger values like 5.0 will cause the deformation of only a part of the object, small values like 0.1 will cause the deformation of the whole object Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concepSMOOTH, SHARP selects the kind of deformation Strength float represents the elasticity of the "material", larger values like 5.0 will cause the deformation of only a part of the object, small values like 0.1 will cause the deformation of the whole object Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opTransform3D @{b}Transform3D-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Transform3D.pic"} This operator performs some standard 3d-transformations on images or 3d-temp-buffers. This makes it for example possible to deform a sphere into a lens or to apply other 3d-effects along any axis. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time ScaleX, -10.0...10.0 object-scaling ScaleY, -10.0...10.0 ScaleZ -10.0...10.0 TransX, pixels object-translation TransY, pixels TransZ pixels Rotate XY, YZ, XZ, NONE axis-pair to rotate around/disable rotating Alpha degrees first rotation angle Beta degrees second rotation angle OriginX, pixels centre for scaling and rotating OriginY, pixels OriginZ pixels Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opJoin3D @{b}Join3D-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Join3D.pic"} This operator joins two different 3d-temp-buffers and makes it so possible to compose images in the 3d-space. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input1 TEMP3D1, ..., TEMP3D4 1st input buffer Input2 TEMP3D1, ..., TEMP3D4 2nd input buffer Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 Centre ON, OFF centre the joined object Because no additional transformations are applied to the images the two input buffers must be different (otherwise joining makes no sense). Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opBump3D @{b}Bump3D-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Bump3D.pic"} This operator applies the grayscale-levels of a bump-map as z-values to an image or 3d-temp-buffer. For good results the bump-map should be very smooth. Such smooth images can be easily created using the @{" Convolve " link opConvolve}-Operator with the default 5x5 matrix. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Map STREAM, TEMP1, ..., TEMP8 bump-map Amount integer maximum height corresponding to a grayscale level of 255 NoGround ON, OFF subtract the "ground" (the average) of the bumpmap to produce only contrast and no additional translation Width pixels width of the bump-map Height pixels height of the bump-map Aspect IGNORE, TAKEWIDTH, TAKEHEIGHT aspect of the bump-map (see @{" Scale " link opScale}) OriginX pixels left edge of the bump-map OriginY pixels top edge of the bump-map Centre ON, OFF centre the bumpmap inside of the input-image Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opGenlock3D @{b}Genlock3D-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Genlock3D.pic"} This operator removes all faces matching a color-specification to produce a genlock-like effect. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified lock-like effect. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Red1, 0...255 genlock-color 1 Green2, 0...255 Blue 0...255 Red2, 0...255 genlock-color 2 Green2, 0...255 Blue2 0...255 Genlock type of genlock: SINGLE COLOR normal genlock using color 1 INRANGE extended genlock using all colors inside the range color1...color2 OUTRANGE extended genlock using all colors outside the range color1...color2 Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opAxis3D @{b}Axis3D-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Axis3D.pic"} This very complex operator adds threedimensional axes including *tickmarks *ticklabels *axes-labels to any 3D-object. The main purpose of this PlugIn is to produce function- or data-plots at extrem high quality. Therefore a very high resolution (e.g. 1280x800) is the "natural mode" of this PlugIn. Such high-quality-images may be included into TeX-documents using the @{" EPS " link svEPS}-Saver and DVIPS easily. Because the created boxed axis has 12 edges there are 4 choices to place the x-, -y and z-labels. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input TEMP3D1, ..., TEMP3D4 input buffer Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Axis X, Y, Z axis to modify Min, float range for the current axis Mode AUTOMATIC, MANUAL mode to compute tick-mark-positions Ticks number of tickmarks (Mode=AUTOMATIC) LMin, float tick-range (Mode=MANUAL) LMax, Thickness pixels thickness of the axis and the labels TickSize pixels length of the tickmarks Red, 0...255 color of the axis and the tickmarks Green, Labels ON, OFF turn creation of labels on/off FontSize pixels height of the ticklabels, the axes-labels are scaled up a little bit Place where to place the labels, the "right" value depends on the view-angle FRONTBOTTOM, FRONTTOP, BACKBOTTOM, BACKTOP (x-axis) RIGHTBOTTOM, RIGHTTOP, LEFTBOTTOM, LEFTTOP (y-axis) FRONTRIGHT, FRONTLEFT, BACKRIGHT, BACKLEFT (z-axis) LSkip float additional space between the axes and the labels LAlpha, degrees individual (additional) rotation-angles LBeta of the labels LRed, 0...255 color of the labels LGreen, lBlue Label, string addional axes-labels Phong ON, OFF turn phong-shading for the axis on/off Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @{b}Notes@{ub} 1. This PlugIn uses a coordinate-system which is much more "handy" than Wildfire's standard coordinate-system to create function-plots: y^ z^ | /z | /y |/ |/ ---> x ---> x "standard" Axis3D Because this coordinate system is only used while creating the objects all view-settings work as usual. 2. As mentioned above this PlugIn is ment to create plots at highend-quality. So lots of memory, the use of an extreme high resolution (100...300 dpi) and at least a 68060-processor are "natural" requirements for this PlugIn. Including such created plots into TeX-documents results in huge files (such as 20 MB per plot). This is natural, too. 3. Don't forget to set the background-color to white (from within the @{" Processor " link ProcessorWindow}-Window) if you want to print out it later. 4. The "AUTOMATIC"-mode uses an intelligent method to compute the "right" tick-step. But sometimes the 1st or last tickmark may be too close to a perpendicular axis. In this case you have to set the tickmark-range manually. @endnode @node opLWOB @{b}LWOB-Operator@{ub} @{" Example " system "visage wf:doc/pictures/LWOB.pic"} This operator reads in a Lightwave-object and converts it into Wildfire's 3D-format. This makes it possible to combine phong-shaded 3D-objects and images using the @{" PowerPlugs!-concept " link PowerPlugs!}- mechanism. Only 1-, 2-, 3-, and 4-point-polygons are supported, all polygons with more points are ignored while reading. To simplify the creation of object-catalogues the filename can be plotted directly to the generated image and whole drawers can be processed easily. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 Text toggle the kind of text to be plotted to the image, OFF, no text will be generated, SMALL, plot the filename without the path, FULL plot the full filename with path Select Font (gadget) select the font for the generated string File string object-file or drawer to be scanned Width pixels width of the image to be created Height pixels height of the image to be created TRed, 0...255 text color TGreen, 0...255 TBlue 0...255 If the specified input-file cannot be found the path is scanned as drawer to create an alphabetically sorted filelist. Later the n-th item of this list is processed at frame n. Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opPerspective @{b}Perspective-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Perspective.pic"} This operator adds perspective to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opWater @{b}Water-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Water.pic"} This operator applies a threedimensional anharmonic water-wave to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Frame integer>0 current frame Frames integer>0 frame count describing a full cycle Times integer>0 number of rings, values in the range 1..3 are are always a good choice Rings integer>0 number of times the growing of rings is performed, after one cycle the 1st ring has the distance times*wavelength from the centre, values 2..10 give good results Axis direction of propagation, X, parallel to the x-axis, Y, parallel to the y-axis, XY, radial propagation Amplitude pixels wave-amplitude, this value should be always in the range 1..4 Wavelength pixels wavelength OriginX, pixels location of the wave-source OriginY pixels Damping ON, OFF toggle damping on/off Damping float damping-value moveXY ON, OFF specify if the deformation is applied to all components (x,y,z) or not. If this option is set there may occur some singularities ("bad points"), but this mode is very close to the reality. Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opWave3D @{b}Wave3D-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Wave3D.pic"} This operator applies a harmonic wave in the threedimensional space to an image. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Frame integer>0 current frame Frames integer>0 number of frame describing a full cycle Amplitude pixels wave-amplitude Wavelength pixels wavelength Phase degrees phase Axis direction of propagation, X parallel to the x-axis Y parallel to the y-axis XY radial propagation in the xy-plane RADIAL radial propagation in the xyz-space OriginX, pixels position of the wave-source OriginY pixels Damping ON, OFF toggle damping on/off Damping float damping-value Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opWrap @{b}Wrap-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Wrap.pic"} This operator wraps an image onto a sphere or a tube. An unique feature is the deformation of "unwrapped" portions of the image in "RADIUS"-mode. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8, input buffer TEMP3D1, ..., TEMP3D4 Ouput STREAM, TEMP1, ..., TEMP8, output buffer TEMP3D1, ..., TEMP3D4 TRender ON, OFF indicate that the transformed 3d-temp-buffer is used for the last time and can be modified directly to conserve both memory and time Axis wrap axis, X, wrap the image onto a tube along the x-axis Y, wrap the image onto a tube along the y-axis XY, wrap the image onto a sphere OriginX, pixels origin of the sphere/tube OriginY prixels Amount 0...100 wrap-amount Radius pixels radius of the sphere or tube Method method used for wrapping, RADIUS, create a sphere/tube of the radius specified, wrap the image onto it and deform the unwrapped portions according to the shape AMOUNT create a sphere/tube to fit the whole wrapped image, the specified amount-value specifies the amount of wrapping in percent Because this operator supports the @{" PowerPlugs! " link PowerPlugs!}-concept further settings can be adjusted from within the global @{" Render-Settings " link RenderSettings}-Window. @endnode @node opARexx @{b}ARexx-Operator@{ub} This operator makes it possible to exchange images with other applications. The basic concept is to produce an ARexx-script which causes the application to load, process and save a temperary image created by Wildfire. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Port string ARexx-port of the application Temp-File string path for the temperorary image to be created Add (gadget) add a line to the ARexx-script Kill (gadget) kill the selected line Up (gadget) move the selected line up Down (gagget) move the selected line down Clear (gadget) clear the whole script Add Variable (gadget) add a variable-entry to the selected line Import (gadget) load a previously saved script Export (gadget) save the current script to disk A "normal" script should contain the three parts: -loading of the temporary image created by Wildfire -processing of this image -saving of the result The 3rd part is the only important. Every line of the script has to be entered in the format of a C-printf-command. This allows one to use Envelopes in such an ARexx-script. The basic syntax is as follows: "",arguments (The enclosing '"'-characters are important.) Three formats are supported: "%s" - for strings "%d" - for integer parameters "%f" - for float parameters The number of format-specifiers must be always equal to the number of arguments. Any special formats-strings like "%.4lf" are not supported. Examples: line to be entered: line generated by Wildfire: "integer: %d",10.3 integer: 10 "float: %f",10.3 float: 10.3 "i: %d, f: %f, s: '%s'",4,3,str i: 4, f: 3.0, s: 'str' To use an Envelope simply enter it's name as argument, rounding is performed if you specify "%d" as corresponding formatstring. The filename of the temporary image can be omitted using the predefined argument "tempfile". Now let's create a working example. Assume you want to have ADPro to halve your images and to apply an Antique-effect to the result. At first you have to set the path of your application (which will be started automatically if it's port cannot be located) from within the @{" Preferences-Window " link PreferencesWindow}. After that you have to specify the portname, in this case "ADPro". At first entry in the script you should specify ADPro's default Loader: "lformat "universal"" Now the image can be loaded "load '%s'",tempfile Apply the effects: "operator halve" "operator antique" Specify the the Saver to use: "sformat "iff"" Save the image: "save '%s' raw",tempfile That's all. Now you should save this script "lformat "universal"" "load '%s'",tempfile "operator halve" "operator antique" "sformat "iff"" "save '%s' raw",tempfile as "reference-script". For further purposes only the "operator"-lines have to be replaced. @endnode @node opComment @{b}Comment-Operator@{ub} This operator simply allows you to add comments to the Processor-script. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} String string the comment @endnode @node opRaster @{b}Raster-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Raster.pic"} This operator applies a black raster to an image. The main purpose of this PlugIn is to reduce the size of delta-compressed animations without loosing too much details. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer @endnode @node opFieldRendering @{b}FieldRendering-Operator@{ub} This operator converts images into "fields". Field-Rendering is used to smoothly playback animations and works similar to the interlaced screen-modes: At each displayed frame only the "half" of the image is changed. This results in a higher playback-rate because only images of the half size have to processed. At each odd frame number every even line is skipped and vice versa. For example: at frame 1 the generated image contains the lines 1,3,5,... @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer @endnode @node opCircle @{b}Circle-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Circle.pic"} This operator draw an optinally filled circle. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer CentreX, pixels centre of circle CentreY Radius pixels circle radius Thickness pixels thickness, use values larger than Radius to create a filled circle Red, 0...255 color of the circle Green, @{b}Notes@{ub} 1) This PlugIn supports "parameter-dragging" from within the @{" ImageCoordinates-Window " link ImageCoordinatesWindow}. @endnode @node opRectangle @{b}Rectangle-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Rectangle.pic"} This operator draws an optionally filled rectangle. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Ouput STREAM, TEMP1, ..., TEMP8 output buffer Left, pixels lower-left-edge Width, pixels size of the rectangle Height Thickness pixels thickness, use values larger than Height/2 to create a filled rectangle Red, 0...255 color of the rectangle Green, @{b}Notes@{ub} 1) This PlugIn supports "parameter-dragging" from within the @{" ImageCoordinates-Window " link ImageCoordinatesWindow}. @endnode @node opSetBackground @{b}SetBackground-Operator@{ub} This operator is made to change the global background-color of the @{" Processor-Window " link ProcessorWindow} dynamically. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Red, 0...255 color Green, The original values are rembered and restored while initializing a new stream. @endnode @node opGetDimensions @{b}GetDimensions-Operator@{ub} This operator applies image-dimensions to the predefined calculator-symbols "pcWidth" and "pcHeight". This makes it possible to create scripts which are independant of the image-size. This PlugIn only makes sense in conjunction with procedural Variables specified from within the @{" Variables-Window " link VariablesWindow}. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Input STREAM, TEMP1, ..., TEMP8 input buffer Output symbol to modify WIDTH pcWidth HEIGHT pcHeight BOTH pcWidth and pcHeight @endnode @node opText @{b}Text-Operator@{ub} @{" Example " system "visage wf:doc/pictures/Text.pic"} This operator renders text in various styles. Unlike to other programs whole text-files can be used and edited. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Ouput STREAM, TEMP1, ..., TEMP8 output buffer Style render-style NORMAL use the font without applying any changes, this method should be selected using color-fonts OUTLINE draw outlines of the selected font EMBOSS produce a threedimensional look Adjust LEFT, CENTERED, RIGHT text-adjustment, this setting has only an effect when plotting more than one line of text Red, 0...255 text-color Green, 0...255 Blue 0...255 Strength pixels thickness of the outline drawed around the text in OUTLINE- or EMBOSS-mode Intensity float light-intensity (1.0=normal) LightX, pixels light-position LightY, pixels LightZ pixels HSkip pixels additional space between two lines Select Font (gadget) select the font to use for all lines Add (gadget) add a line of text Kill (gadget) delete the selected line Up (gadget) move the selected line up Down (gadget) move the selected line down Clear (gadget) clear all lines of text Import (gadgt) import text from a file Export (gadget) save the current text to disk @endnode @node opGSImport @{b}GSImport-Operator@{ub} @{" Example " system "visage wf:doc/pictures/GSImport.pic"} This PlugIn runs Ghostscript to import Postscript (TM)-files. To consume both time and memory only the first page of documents is processed. But the main purpose of this PlugIn is to convert EPS-illustrations into "editable images". @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Output STREAM, TEMP1, ..., TEMP8 Output buffer File string Postscript-file Resolution integer Resolution XGeom, pixels crop-region YGeom View (gadget) Display the file using the default displayer @{b}Notes@{ub} A) This PlugIn requires a complete installation of Ghostscript. Because only the ppmraw-device is used there is no need for a special version. Even version 2.62 for AmiWin was sucessfully tested. B) Due it's nature this PlugIn is relatively slow. But in comparison to similar X11-Tools this is normal. C) If you want to import a very small figure at high resolution you have to set the geometry-parameters. Example: Your figure has a dimension of about 3x2.5 cm and you want to import it at a resolution of 120 dpi. If you don't change the geometry-parameters the WHOLE page is written at this resolution which requires a LOT of memory and wastes much time. In this example you should specify a crop region of about 320x256 instead. D) Use the @{" AutoCrop " link opAutoCrop}-PlugIn to crop the "region of interest" from the imported page. @{b}Copyrights@{ub} Ghostscript is Copyright (C) 1989, 1992, 1993 Aladdin Enterprises. PostScript is a trademark of Adobe Systems, Incorporated. AmiWin is Copyright (C) 1994, 1995 Holger Kruse. @endnode @NODE beispiele "5. Examples" @{b}5. Examples -----------------------------------------------------------------@{ub} (i) An animation will be displayed in negative colors and a smaller version of the anim will be placed in the right colors over the `negative` animation Scheme: *STREAM to negativ and save to TEMP1 *STREAM to halve and save to STREAM *Compose TEMP1 as background and STREAM as foreground and save to STREAM ARexx-Program: pc_add negative stream temp1 pc_add scale stream stream width/2 height/2 pc_add compose width/3 height/3 100 temp1 stream stream none NOTE: *The ARexx-notation is very useful. So you can take the examples as macros and you`ll learn how to use the ARexx port of Wildfire, too. *Of course you should try out the examples inside the program, first. Just start @{" WILDFIRE " link Wildfire.guide/MAIN}, klick on the PROCESSOR-GADGET, and push the ADD BUTTON. Doubleclick on NEGATIVE and doubleclick on the NEGATIVE entry in the script. Now you can select STREAM as INPUT and TEMP1 as output. Do the needed things for the other 2 commands, too. *width and height are the height and the width of the animation or the single-pictures. With the ARexx commands "T_ANIMINFO" or "T_PICINFO" you can get the needed details. (ii) An animation will be placed on a colored background using a white border with shadow. Scheme: *create a colored background with width+80 and height+80 in "TEMP1" *create a white picture with width+20 and height+20 in "TEMP2" the border-size is 10 pixels (20/2) *create a black picture with width+20 and height+20 in "TEMP3" the border-size is 10 pixels, too *place the black picture on the colored background with offset 40x40 pixels *place the white picture on the colored background (now with the black picture on it) with offset 30x30 *all these things you have to do ONLY 1 time, the result-picture will be saved to buffer "TEMP1" and will NOT be changed anymore! So we can tell @{" Wildfire " link Wildfire.guide/MAIN} that it has to do this effect only for the first frame! *every picture from the animation will be placed with offset 40x40 on the created colored picture with black and white border. ARexx-Programm: /* create background and save to TEMP1 */ pc_add createimage temp1 width+80 height+80 255 0 0 255 255 0 0 255 0 0 0 255 pc_add createimage temp2 width+20 height+20 255 255 255 255 255 255 255 255 255 255 255 255 pc_add createimage temp3 width+20 height+20 0 0 0 0 0 0 0 0 0 0 0 0 pc_add compose 40 40 100 temp1 temp3 temp1 none pc_add compose 30 30 100 temp1 temp2 temp1 none /* only do this operations at frame 1 */ pc_select createimage 1 pc_to 1 pc_select createimage 2 pc_to 1 pc_select createimage 3 pc_to 1 pc_select compose 1 pc_to 1 pc_select compose 2 pc_to 1 /* compose STREAM with TEMP1 for every animation-picture */ pc_add compose 40 40 100 temp1 stream stream none @ENDNODE @remark /*************************************************************/ @remark /* @remark Developer @remark */ @remark /*************************************************************/ @node Developer @{b}The YAFA-Format@{ub} If you want to develop your own YAFA-player or just want to support the YAFA-format from within your application you may have a look at the @{" YAFA-Format-Description " link YAFA-doc.guide/MAIN}. @{b}Wildfire-PlugIns@{ub} If you on the other side are interested in developing addional PlugIns (savers, operators or general PlugIns) for Wildfire please contact the author at "epgbc@cluster1.urz.Uni-Halle.DE". If there are at leat 10 requests I will start to create a developer-kit including working examples and full documentation. Currently (Thursday 05-Jun-97) there are only two requests. The only supported compiler is GCC, but SAS may work, too. @endnode @remark /*************************************************************/ @remark /* @remark ARexx @remark */ @remark /*************************************************************/ @node ARexx @{b}The ARexx-port@{ub} The ARexx-port is another powerful feature of Wildfire which allows you -to use all features from within other programs -to enhance the GUI with your own windows without -to write own ARexx-applications which operate like the program itself Example: You have designed a nice special effect like a transition between three animations or whatever. Now you want to integrate this nice feature into Wildfire as a "natural feature". This is easy ! All you have to do is to design a so-called "Custom-window" with buttons, string-gadgets, switches, ... and to write the procedure itself. @{b}Topics:@{ub} @{" Usage " LINK ARexxUsage} @{" Error-Messages " LINK ARexxErrors} @{" Custom-windows " LINK ARexxCWindows} @{" Commands " LINK ARexxCommands} @endnode @node ARexxUsage The name of the ARexx-port is equal to the name of the publicscreen opened by Wildfire. For the first running copy of the programm the port is named "Wildfire", for the second "Wildfire.1" and so on. I don't think that's very useful to run more copies at one time - but it's possible. The command-hierarchy is equal to the window-hierarchy. This makes it very easy for you to find out the right name for a particular command. Every command consists of the hierarchy-identifier and the function-name, e.g. the "Play"-button of the Player-window is named "P_PLAY". Most of the arguments are strings or integer-values. It's recommended to enclose strings into "'"-characters otherwise they are converted to uppercase by the ARexx-system. There are three ways to invoke ARexx-commands: 1. scripts 1a) called as macros from Wildfire after pressing one of the function-keys 1b) started from a shell 2. direct commands 3. external programs Direct commands are nice to try out a special command, e.g., if you want to check out the "PL_APPENDDIR"-command you may type in a shell- window: rx "address 'Wildfire' pl_appenddir 'data:grafix/frames'" Another way to test single commands is to use the "Command"-PlugIn. An input string "pl_appenddir 'data:grafix/frames'" would cause the same result as the example shown above. The advantage of the use of the Command-PlugIn is the fact that it's faster because it doesn't use ARexx and displays the results of the in the same window. (ARexx-errors sometimes are cryptic.) Inside the directory wf:macros/ there are some small macros, they`ll be helpfull if you want to create own macros! @endnode @node ARexxCWindows Custom-windows are another powerful feature of Wildfire. You can create as much own windows as you want, they can be loaded, saved, opened, closed, deleted, ... at any time. So it's possible to create Toolmanager-like docks on the Wildfire-screen which can be loaded at startup. But the main purpose is to give you the possibility to enhance the program easily and to fit it to your needs. Window-elements ------------------------------------------------------------------- Custom windows can contain -buttons -string-gadgets -switches -lines -boxes and -texts. All these elements remain to the window as long as you don't kill them. But you have the possibility to apply graphical elements which are not stored as structures to the window. So you could create an own progress-bar or a function-plotter.. Attention: If you want to have spaces in you window- or gadget-names you have to use a special character (code 160). (This restriction is due the command-parsing.) Example: space='a0'x wnd="Transition.rexx" || space || "V0.3" Window-coordinates ------------------------------------------------------------------- Because Wildfire has a fontsensitve GUI you can't use absolute coordinates to specify window-elements. So you have to design your windows using a topaz.8-font to ensure that they look perfect for example with a times.24-font. If you want to design a very difficult window with 500 gadgets, 300 bevelboxes, ... it's seems to be no bad idea to use GadToolsBox . Using this nice program you can drag and size your gadgets in an easy way - just take down the coordinates after finishing it. A simple example ------------------------------------------------------------------- The following example called "ConvertPics.rexx" opens a window which lets you specify a range of your current picture-list and has a "Convert"-button. This makes is possible to convert only a small part of the picture-list which is very useful if you want to test a very complex process. 1. Program-structure (i) create the window, initialize the parameters (ii) perform an endless loop receiving messages: 1. check for pressed gadgets -> start filerequester, read gadget-contents 2. check for the closegadget -> exit 3. check for the start-button -> check the parameters -> do it 2. Program /* Are we right ? */ if ~show('P','Wildfire') then do say " Error: The Wildfire-program must be started before executing this script." exit end /* Initialize the global variables */ address "Wildfire" options results wnd="Convert" from=1 to=1 /* Create the window */ cw_kill wnd cw_add wnd 309 70 /* Create the Gadget */ cw_addgadget wnd string 202 11 84 "From" cw_addgadget wnd string 202 27 84 "To" cw_addgadget wnd button 25 46 261 "Convert" /* It's important to open the window before setting the gadgets */ cw_open wnd cw_setgadget wnd "From" from cw_setgadget wnd "To" to /* main loop */ do forever /* check if the window is still open */ cw_isopen wnd qt=result /* no: leave the script */ if qt=0 then call cleanup /* wait for gadgets */ cw_wait wnd gadget=result /* which gadget was pressed */ if gadget="From" then do /* get the "from"-value from the gadget */ cw_getgadget wnd "From" from=result end else if gadget="To" then do /* get the "to"-value from the gadget */ cw_getgadget wnd "To" to=result end else if gadget="Convert" then do /* now let's do it */ c_convertpics from to end end cleanup: cw_kill wnd exit GadToolsBox is Copyright 1991-93 Jaba Development @endnode @node ARexxErrors There are 4 error-messages which will be shown together with the command in the default CON:-window: 1: wrong number of arguments 2: wrong arguments 3: unknown command 4: command failed Most of the commands are valid everywhere, but there are exeptions, e.g. if you haven't defined any variable you can't open the envelope-window. This would cause error 4. Normally you can access all program functions without opening any of the windows, but there are the following exceptions: -Timecodes-, AnimInfo-, Envelope- and EnvelopeAdvanced-commands require that the corresponding Window was opened (This is due the internal data-structure and no error or similar.) If the program executes an ARexx-command all requesters except the one invoked by the "M_MESSAGE"-command are turned off, but the requester-messages are shown in the Log-Window. @endnode @node ARexxCommands The command-list below shows all available commands, values enclosed into brackes are alternative keywords. Main: M_EXIT M_QUIT M_WAIT secs M_MESSAGE text M_REQUEST text (res=0: o.k.) M_OPENCONVERTER M_CLOSECONVERTER M_OPENPROCESSOR M_CLOSEPROCESSOR M_OPENEDITOR M_CLOSEEDITOR M_OPENPLAYER M_CLOSEPLAYER M_OPENPREFS M_CLOSEPREFS M_OPENINFO M_CLOSEINFO M_OPENLOG M_CLOSELOG M_MOVE x y M_TOFRONT M_TOBACK M_OPENTMAKER M_CLOSETMAKER M_OPENIMOPTIONS M_CLOSEIMOPTIONS M_ADDICON file M_CLEANUP M_RESET M_LOAD M_SAVE Tools: T_DELPICTURELIST T_GETNUMBER title [preset] T_GETSTRING title [preset] T_GETFILE title [preset] T_GETDRAWER titlee [preset] T_ANIMINFO name (0=o.k.) T_PICINFO name (0=o.k.) T_GETWIDTH T_GETHEIGHT T_GETDEPTH T_GETCOLORS T_GETFRAMES T_GETANIMDRAWER T_GETPICDRAWER T_GETMODDRAWER T_GETROOTDRAWER T_PEXTENSION extension T_REQSTATUS (ON|OFF) Prefs: PR_PLAYERSCREEN name PR_SCREENMODE id width height depth PR_SCREENDEPTH depth PR_LOADPREFS PR_SAVEPREFS PR_OPENPATHS PR_CLOSEPATHS PR_OPENMACROS PR_CLOSEMACROS PR_DCLICKTIME val PR_REQTIMEOUT val PR_CLICKTOFRONT (ON|OFF) PR_STATISTICS (ON|OFF) PR_EXPERTMODE (ON|OFF) PR_PRVDITHER (ON|OFF) PR_USEPPC (ON|OFF) PR_MOVE x y Paths: PT_ANIMATIONDRAWER name PT_PICTUREDRAWER name PT_SOUNDDRAWER name PT_ROOTDRAWER name PT_YAFAPLAYER name PT_ANIMPLAYER name PT_MPEGPLAYER name PT_VIEWER name PT_MOVE x y Info: I_MOVE x y Text: TXT_TEXT file TXT_TEXTNC file TXT_MOVE x y TXT_CLOSE TXT_WAIT TXT_CENTRE Player: P_FILE [name] P_BUFFERS num P_ABUFFER num P_DISPLAY (NORMAL|ZOOMED|DITHERED) P_CACHING (ON|OFF) P_OUTPUT (HARDWARE|WINDOW|BGWINDOW|SCREEN) P_24BIT (TRUE|DRGB|DRGB2|GRAY) P_SCREENMODE hexnum P_WAIT (ON|OFF) P_PLAY [from to] P_MOVE x y P_OPENANIMINFO P_CLOSEANIMINFO P_OPENTIMECODES P_CLOSETIMECODES AnimInfo: AI_MOVE x y AI_EXPORT name AI_IMPORT num Timecodes: TC_RANGE from to step TC_IMPORT name TC_EXPORT name TC_TIMERANGE num TC_MOVE x y Editor: E_AADD name E_AKILL E_AREPLACE name E_AINFO E_ASELECT name E_ASELECTNEXT E_ASELECTPREV E_AFROM from E_ATO to E_AUP E_ADOWN E_MADD name (MODULE|SAMPLE|EXECUTABLE) E_MKILL E_MREPLACE name E_MEDIT E_MSELECT name E_MSELECTNEXT E_MSELECTPREV E_MUP E_MDOWN E_OPENPROFILE E_CLOSEPROFILE E_OPENFILMCONTROL E_CLOSEFILMCONTROL E_PLAYALL E_PLAYSEL E_SAVEALL E_FILENAME [name] E_CLEAR E_EXPORT E_LOAD E_SAVE E_INSERT file E_APPEND file E_MOVE x y EditorAnimInfo: EAI_DISPLAY (NORMAL|ZOOMED|DITHERED) EAI_CACHING (ON|OFF) EAI_BUFFERS num EAI_ABUFFER num EAI_SPEED num EAI_MOVE x y EAI_CLOSE ModuleOptions: MO_TEST MO_STOP MO_CLOSE MO_MOVE x y SampleOptions: SO_TEST SO_STOP SO_CHANNEL (LEFT0|RIGHT0|LEFT1|RIGHT1) SO_REPEAT num SO_VOLUME num SO_CLOSE SO_MOVE x y CommandOptions: CO_TEST CO_CLOSE CO_MOVE x y Processor: PC_ADD type [options] SCALE in out width height [(PIXELS|PERCENT) (IGNORE|TAKEWIDTH|TAKEHEIGHT)] CROP in out left top width height AUTOCROP in out ALPHA in alpha out left top COMPOSE left top mix back=(STREAM|TEMPx) fore=(STREAM|TEMPx) dest=(STREAM|TEMPx) (NONE|COLOR|INRANGE|OUTRANGE) [red1 green1 blue1 [red2 green2 blue2]] BALANCING in out red green blue bright contrast gamma saturation DISPLACE in out radius probability seed ROTATE in out centreX centreY radius amount zoom NEGATIVE in out COLORTOGRAY in out (AVERAGE|LUMINANCE|CUSTOM) [red] [green] [blue] SHIFTLINES in out (HORIZONTAL|VERTICAL) shift [(NORMAL|POSITIVE|NEGTIVE) amount probability seed] SAVETEMP buffer LOADTEMP buffer KILLTEMP buffer LOADIMAGE out sequence repeat shift CREATEIMAGE out width height [red0 green0 blue0 ... red3 green3 blue3] PIXELIZE in out width height (ON|OFF) [(XY|X|Y) size red green blue dLeft dRight dTop dBottom] CONVOLVE in out mix shift (file|matrix) TWIRL in out (IN|OUT) centreX centreY radius amount power zoom BUMP in heightMap out left top amount lightX lightY lightZ intensity TEXT out red green blue (NORMAL|OUTLINE|EMBOSS) (LEFT|RIGHT|CENTERED) hSkip font fontSize italic bold underline color textFile [strength [lightX lightY lightZ intensity]] ANTIQUE in out HALVE in out FLIP in out (X|Y|XY) MOTIONBLUR in out deltaX deltaY ROTATEBLUR in out centreX centreY amount radius BLACKHOLE in out centreX centreY amount radius MAGNET in out centreX centreY amount damping WAVE in out centreX centreY (X|Y) frames frame zoom damping (ON|OFF) amplitude wavelength phase shift AREXX in out port tempfile script COMMENT [string] PLASMA out width height dimension seed EMBOSS in out direction REPLACECOMP in1 in2 out (RED|GREEN|BLUE) OILTRANSFER in out rect MEDIANFILTER in out rect ADD in1 in2 out (ADD|SUBTRACT) RASTER in out SWAPRGB in out (RBG|GRB|GBR|BRG|BGR) NOISE in out intensity probability seed POSTERISE in out bits ROLL in out deltaX deltaY (ON|OFF) CARTESIAN2POLAR in out r0 phi0 THRESHOLD in out level SHEAR in out originX originY amount (X|Y) zoom damping (ON|OFF) LWOB out file width height renderSettings DLA out width height iterations seed red green blue NEON in out (TRIVIAL|HKC) red green blue radius intensity tolerance SETBACKGROUND red greed blue GSIMPORT out file resolution xGeom yGeom EDGEDETECT in out contrast LINEART in out (GRAY|COLOR|INVGRAY|INVCOLOR) RIP in out COLORREGION in out centreX centreY (INCLUDE|EXCLUDE) tolerance RECTANGLE in out left top width height thickness red green blue CIRCLE in out centreX centreY radius thickness red green blue WIND in out (LEFT|RIGHT) intensity probability seed BGRADIENT in out mode (RED|GREEN|BLUE|CONTRAST|BRIGHTNESS|GAMMA|SATURATTION) (PARALLEL|RADIAL) x1 y1 value1 x2 y2 value2 LUT in out TILEBRICK in out width height shift KILLTEMP3D buffer PERSPECTIVE in out renderSettings CUBE in out (ON|OFF) size (ON|OFF) alpha4 alpha5 alpha2 alpha6 alpha1 renderSettings WRAP in out (ON|OFF) (RADIUS|AMOUNT) radius amount (X|Y|XY) renderSettings WATER in out (ON|OFF) frames frame (X|Y|XY) originX originY times rings amplitude wavelength (ON|OFF) damping doXY=(ON|OFF) renderSettings WAVE3D in out (ON|OFF) frames frame (X|Y|XY|RADIAL) originX originY originZ amplitude wavelength phase (ON|OFF) damping renderSettings MAGNET3D in out (ON|OFF) strength srcX srcY srcZ destX destY destZ renderSettings SPHERE in out (ON|OFF) radius renderSettings TRANSFORM3D in out (ON|OFF) scaleX scaleY scaleZ transX transY transZ (XY|YZ|XZ|NONE) alpha beta originX originY originZ renderSettings BUMP3D in out (ON|OFF) map amount (ON|OFF) width height (IGNORE|TAKEWIDTH|TAKEHEIGHT) originX originY (ON|OFF) renderSettings JOIN3D in1 in2 out (ON|OFF) renderSettings TWIST in out (ON|OFF) (X|Y|Z) amount dist originX originY originZ renderSettings TWIRL3D in out (ON|OFF) (X|Y|Z) originX originY originZ amount radius power renderSettings COLORCUBE in out (ON|OFF) mix (COLOR|ALPHA) (CURRENT|ACTUAL) red1 green1 blue1 ... red8 green8 blue8 SETCOLOR in out (ON|OFF) red green blue mix renderSettings TRIANGULATE in out (ON|OFF) renderSettings ZPLOT out expr xmin xmax xcount ymin ymax ycount red green blue (ON|OFF) gRed gGreen gBlue width height renderSettings PARPLOT out x y z umin umax ucount vmin vmax vcount red green blue (ON|OFF) gRed gGreen gBlue width height renderSettings DATAPLOT out file xQuant yQuant xScale yScale zScale red green blue (ON|OFF) gRed gGreen gBlue renderSettings MORPH in1 in2 out frame frames renderSettings GENLOCK3D in out (ON|OFF) (SINGLE|INRANGE|OUTRANGE) red green blue renderSettings AXIS3D in out (ON|OFF) xMin xMax xTicks yMin yMax yTicks zMin zMax zTicks red green blue thickness tickSize phong=(ON|OFF) doLabels=(ON|OFF) (FRONTBOTTOM|FRONTTOP|BACKBOTTOM|BACKTOP) (RIGHTBOTTOM|RIGHTTOP|LEFTBOTTOM|LEFTTOP) (FRONTRIGHT|FRONTLEFT|BACKRIGHT|BACKLEFT) fontSize xLabel yLabel zLabel lRed lGreen lBlue renderSettings renderSettings=camX camY camZ (XY|YZ|XZ|NONE) alpha beta centreX centreY zoom (NORMAL|PHONG|OFF) lightX0 lightY0 lightZ0 lightX1 lightY1 lightZ1 lightX2 lightY2 lightZ2 lightX3 lightY3 lightZ3 lightRed0 lightGreen0 lightBlue0 lightRed1 lightGreen1 lightBlue1 lightRed2 lightGreen2 lightBlue2 lightRed3 lightGreen3 lightBlue3 ambient diffuse phong phongSize phongAngle (NORMAL|DOUBLE|NDOUBLE) quant3D PC_KILL PC_CLEAR PC_SELECT type [which] PC_UP PC_DOWN PC_FROM num PC_TO num PC_STEP num PC_OPENEDIT PC_MOVEEDIT x y PC_CLOSEEDIT PC_MODE (COLOR|HAM6|HAM8) PC_DITHER (NONE|FS) PC_SMOOTHING (OFF|LOW|MEDIUM|HIGH) PC_DEPTH num PC_CSKIP num PC_FILENAME [name] PC_LOAD PC_SAVE PC_OPENPCSINGLEPICTURE PC_CLOSEPCSINGLEPICTURE PC_OPENVARIABLES PC_CLOSEVARIABLES PC_OPENPALETTE PC_CLOSEPALETTE PC_OPENCALCULATOR PC_CLOSECALCULATOR PC_OPENSTORYBOARD PC_CLOSESTORYBOARD PC_MOVE Variables: V_ADD name V_SELECT name V_KILL V_RENAME V_SELECT name V_ENVELOPE V_FILENAME V_SAVE V_LOAD V_CLEAR V_MOVE Envelope: EV_XRANGE xmin xmax EV_YRANGE ymin ymax EV_VIEWALL EV_SCROLLUP EV_SCROLLDOWN EV_SCROLLLEFT EV_SCROLLRIGHT EV_SELECT num EV_SELECTNEXT EV_SELECTPREV EV_KILL EV_ADD xval yval EV_MOVE xval yval EV_DRAG xval yval steps EV_LOAD name EV_SAVE name EV_INTERPOLATION (SPLINE|BEZIER|LINEAR) EV_USE EV_CANCEL EV_OPENADVANCED EV_MOVE SinglePicture: PCS_INPUT name PCS_OUTPUT name PCS_TEST [time] PCS_SAVE PCS_SAVERENDERED PCS_APPLYDIMENSIONS PCS_FRAME num PCS_MAXFRAME num PCS_MOVE PCS_SCREENMODE id PCS_PREVIEWWIDTH val PCS_PREVIEW (ENABLED|DISABLED) PCS_ISHOW PCS_OSHOW PCS_IINFO PCS_OINFO PCS_CLOSEINFO EnvelopeAdvanced: EVA_RANGE from to step EVA_SCALE EVA_SHIFT EVA_LOADCURVE name EVA_SAVECURVE name EVA_LOADTIMECODES EVA_SAVETIMECODES EVA_XVAL val EVA_YVAL val EVA_CLOSE EVA_MOVE Converter: C_INPUTTYPE (ANIMATION|YAFAANIM|BLACKFRAMES|SEQUENCE) C_INPUTEXPORT C_INPUTFILENAME name C_OUTPUTTYPE (PICTURES|YAFAANIM|IFFANIM|NONE) C_OUTPUTEXPORT C_OUTPUTFILENAME name C_ANNOTATION (ON|OFF) C_ANNOFILENAME [name] C_ANNOSTRING [string] C_LOADSESSION C_SAVESESSION C_CONVERT C_CONVERTPICS first last C_OPENINPUTOPTIONS C_OPENOUTPUTOPTIONS C_CLOSEINPUTOPTIONS C_CLOSEOUTPUTOPTIONS C_PREVIEW (NONE|WINDOW|SCREEN) C_PROCESSOR (ENABLED|DISABLED) C_MOVE YAFAOptions: YO_IMAGEDATA (RAW|CHUNKY) YO_DELTA (NONE|BYTE|WORD|LONG|BYTEBR|WORDBR|LONGBR) YO_COMPRESSION (NONE|XPK) YO_COMPRESSOR name YO_MODE mode YO_COLORMAP (UNLOCKED|LOCKED) YO_SPEED num YO_FORCETIMECODES (ON|OFF) YO_OPENANALYSIS YO_MOVE YO_APPLY name Analysis: A_FRAMES num A_TEST A_USE A_CANCEL A_MOVE ANIMOptions: AO_TYPE (ANIM5|ANIM7S|ANIM7L) AO_COLORMAP (UNLOCKED|LOCKED) AO_SCREENMODE mode AO_MOVE PictureOptions: PO_BASENAME name PO_SCREENMODE mode PO_SHIFT num PO_MOVE PO_TYPE (RENDERED|TRUECOLOR) CreateFrames: CF_WIDTH num CF_HEIGHT num CF_FRAMES num Sequence: SQ_REPEAT num SQ_FRAMES num SQ_SHIFT num SQ_SEQUENCE file PictureList: PL_INSERT names PL_APPEND names PL_INSERTDIR name PL_APPENDDIR name PL_DUPLICATE times PL_SORT PL_CHECK PL_RANGE from to step PL_REMOVERANGE PL_TIMERANGE num PL_SHOW PL_SELECT name [which] PL_SELECTNEXT PL_SELECTPREV PL_OPENPICTUREINFO PL_CLOSEPICTUREINFO PL_MOVE Custom-Windows: CW_CLOSE name CW_OPEN name CW_MOVE name x y CW_ADD name width height CW_KILL name CW_ADDGADGET window (STRING|BUTTON|SWITCH) left top width name [action] CW_GETGADGET window name CW_SETGADGET window name value CW_WAITGADGET window name CW_ADDTEXT window left top pen text CW_ADDLINE window x1 y1 x2 y2 pen CW_ADDRECT window left top width height pen (NORMAL|FILLED|BBOX|BBOX2) CW_DRAWTEXT window left top pen text CW_DRAWLINE window x1 y1 x2 y2 pen CW_DRAWRECT window left top width height pen (NORMAL|FILLED|BBOX|BBOX2) CW_SAVE name CW_LOAD name CW_WAIT name CW_ISOPEN name Palette: PP_FILENAME PP_LOAD PP_SAVE PP_COLOR color red green blue PP_STATE (ENABLED|DISABLED) PP_MOVE x y FilmStrip: FC_PLAY file loops rows cols [left top] FC_FILE file FC_FILMFILE file FC_RANGE from to step FC_WIDTH width FC_SIZE rows cols FC_COLOR (ORIGINAL|GRAY) FC_MAXDEPTH (15/24) FC_COMPRESSION (ON|OFF) FC_UPDATE FC_CLEANUP FC_LOAD FC_SAVE FC_CONVERT FC_APPEND FC_SCROLL val (negative->scroll left) CRange: CR_FROM num CR_TO num CR_STEP num CR_STATE (ENABLED|DISABLED) IMOptions: IM_FILE file IM_TRASHCAN (KILLICON|DELETE) Icon-Saver: IC_Image1 file IC_Image2 [file] IC_ICON file IC_WIDTH width IC_DEPTH depth IC_COLOR (COLOR|GRAY) IC_CONVERT TMaker: TM_INPUT1 file TM_INPUT2 file TM_OUTPUT file TM_TEMP drawer TM_FRAMES frames TM_PREVIEW (NONE|WINDOW|SCREEN) TM_SHOWEXAMPLE (ON|OFF) TM_TYPE type subtype TM_CREATETEMPFILES TM_KILLTEMPFILES TM_PLAY TM_CONVERT TM_CREATEEXAMPLES StoryBoard: ST_WIDTH num ST_FRAME num ST_COLORS (ORIGINAL|GRAY) ST_UPDATE ST_SCROLLLEFT ST_SCROLLRIGHT ST_SCROLLUP ST_SCROLLDOWN ST_CLOSE @endnode @node PowerPlugs! @{b}PowerPlugs! - it's not a dream @{ub} @{u}Introduction@{uu} @{" Example1 " system "visage wf:PowerPlugs!_01.jpg"} PowerPlugs! are a extended version of Wildfire's 3D-operators allowing the superposition of effects in the threedimensional space. For example after wrapping an image onto a cube a radial-wave could be applied to the cube. Since version 3.14 you can combine phong-shaded Lightwave3D-objects with your images. All 3D-effects can be applied to these objects, too. This makes it for example possible to create a threedimensional twirled cow in a few seconds. This are of course incredible mega-features many 3D-programs are missing. You can handle so called "3D-temp-buffers": TEMP3D1, ... TEMP3D4. @{u}Usage@{uu} @{" Example2 " system "visage wf:PowerPlugs!_02.jpg"} @{ub} The usage is quiet simple. If you specify a 3d-temp-buffer instead of an image the transformation is applied to a virtual object and not to an image. This means that all "final" transformation operations like rotating, scaling or adding light are not performed. 3d-temp-buffers can be specified both as input and output. Example: You want to linearcombine two simple waves. Add a Wave3D-effect and set the originX-value to 60. Set the output-buffer to TEMP3D1. Add a second Wave3D-effect and sets it's originX-value to 260. Set the input-buffer to TEMP3D1. So what happens ? The image is read and deformed by the first Wave3D-operator but not rotated, scaled or rendered. The result is read in by the second Wave3D-operator, deformed, rotated and rendered. @{u}Operators@{uu} @{" Example3 " system "visage wf:PowerPlugs!_03.jpg"} @{ub} The following operators support the PowerPlugs!-concept and can therefore combined in any manner: @{" Axis3D " link opAxis3D } Add axes in very high quality to plots @{" Example " system "visage wf:doc/pictures/Axis3D.pic"} @{" Bump3D " link opBump3D } Real Bump-mapping @{" Example " system "visage wf:doc/pictures/Bump3D.pic"} @{" ColorCube " link opColorCube } 3D color- or alpha-space @{" Example " system "visage wf:doc/pictures/ColorCube.pic"} @{" Cube " link opCube } Wrap an image onto a cube @{" Example " system "visage wf:doc/pictures/Cube.pic"} @{" DataPlot " link opDataPlot } Plot threedimensional data-sets @{" Example " system "visage wf:doc/pictures/DataPlot.pic"} @{" Genlock3D " link opGenlock3D } Threedimensional genlock @{" Example " system "visage wf:doc/pictures/Genlock3D.pic"} @{" Join3D " link opJoin3D } Join two 3D-temp-buffers @{" Example " system "visage wf:doc/pictures/Join3D.pic"} @{" LWOB " link opLWOB } Import Lightwave-objects @{" Example " system "visage wf:doc/pictures/LWOB.pic"} @{" Magnet3D " link opMagnet3D } Grab and drag portions of an image @{" Example " system "visage wf:doc/pictures/Magnet3D.pic"} @{" Morph " link opMorph } Interpolate between two objects @{" Example " system "visage wf:doc/pictures/Morph.pic"} @{" ParPlot " link opParPlot } Plot threedimensional parametric functions @{" Example " system "visage wf:doc/pictures/ParPlot.pic"} @{" Perspective " link opPerspective } Add perspective to an image @{" Example " system "visage wf:doc/pictures/Perspective.pic"} @{" SetColor " link opSetColor } Modify the color of objects @{" Example " system "visage wf:doc/pictures/SetColor.pic"} @{" Sphere " link opSphere } Wrap an image onto a complete sphere @{" Example " system "visage wf:doc/pictures/Sphere.pic"} @{" Transform3D " link opTransform3D } Perform standard 3d-transformations @{" Example " system "visage wf:doc/pictures/Transform3D.pic"} @{" Triangulate " link opTriangulate } Convert images into smooth phong-object @{" Example " system "visage wf:doc/pictures/Triangulate.pic"} @{" Twirl3D " link opTwirl3D } Apply a Twirl-effect along any axis @{" Example " system "visage wf:doc/pictures/Twirl3D.pic"} @{" Twist " link opTwist } Deform an image using rotation @{" Example " system "visage wf:doc/pictures/Twist.pic"} @{" Water " link opWater } Apply an anharmonic water-wave to an image @{" Example " system "visage wf:doc/pictures/Water.pic"} @{" Wave3D " link opWave3D } Apply a harmonic wave to an image @{" Example " system "visage wf:doc/pictures/Wave3D.pic"} @{" Wrap " link opWrap } Wrap the image on a sphere or a tube @{" Example " system "visage wf:doc/pictures/Wrap.pic"} @{" ZPlot " link opZPlot } Plot threedimensional functions @{" Example " system "visage wf:doc/pictures/ZPlot.pic"} Looking at the example-pictures @{" Example1 again " system "visage wf:PowerPlugs!_01.jpg"} @{" Example2 again " system "visage wf:PowerPlugs!_02.jpg"} @{" Example3 again " system "visage wf:PowerPlugs!_03.jpg"} keep in mind that all parameters may be animated easily and any number of these operators can be combinated in any manner. All scripts which where used to create these example-pictures can be found in the "wf:doc/PlugIns"-drawer. @{" I'm impressed ! " system "visage wf:Motivation2.jpg"} @endnode @remark /*************************************************************/ @remark /* @remark Tutorials @remark */ @remark /*************************************************************/ @node Tutorials ############################################################################### # # # Macro-Demos # # # ############################################################################### This short Macros show some functions of Wildfire. You can start them from within Wildfire, too. Just press the function-key `F10` and select a demo-macro `*DEMO.rexx`. If you press on one o the following buttons then the macro will be started. Wildfire have to run in the backgound, of course! After you started the macro you it`s "waiting" for you on the Wildfire screen. @{" ConverterDemo " system "rx wf:Macros/converterDEMO.rexx"} @{" VariablesDemo " system "rx wf:Macros/variablesDEMO.rexx"} @{" ProcessorDemo " system "rx wf:Macros/processorDEMO.rexx"} @{" EditorDemo " system "rx wf:Macros/editorDEMO.rexx"} @{" PlayerDemo " system "rx wf:Macros/playerDEMO.rexx"} ############################################################################### # # # Small-Tutorial # # # ############################################################################### @{" 1. Tutorial 0 " LINK Tutorial-0} ############################################################################### # # # Sequencer-Tutorial 1 # # # ############################################################################### @{" 1. Introduction " LINK Tut1-Intro} @{" 2. Hardware-Requirements " LINK Tut1-Req} @{" 3. Tutorial 1 " LINK Tut1} @ENDNODE @NODE Tutorial-0 "Beispiel 1" @{b} Examples -----------------------------------------------------------------@{ub} (i) An animation will be displayed in negative colors and a smaller version of the anim will be placed in the right colors over the `negative` animation Scheme: *STREAM to negativ and save to TEMP1 *STREAM to halve and save to STREAM *Compose TEMP1 as background and STREAM as foreground and save to STREAM ARexx-Program: pc_add negative stream temp1 pc_add scale stream stream width/2 height/2 pc_add compose width/3 height/3 100 temp1 stream stream none NOTE: *The ARexx-notation is very useful. So you can take the examples as macros and you`ll learn how to use the ARexx port of Wildfire, too. *Of course you should try out the examples innerhalb the program, first. Just start Wildfire, klick on the PROCESSOR-GADGET, and push the ADD BUTTON. Doubleclick on NEGATIVE and doubleclick on the NEGATIVE entry in the script. Now you can select STREAM as INPUT and TEMP1 as output. Do the needed things for the other 2 commands, too. *width and height are the height and the Breite des the animation or the single-pictures. With the ARexx commands "T_ANIMINFO" or "T_PICINFO" you can get the needed details. (ii) An animation will be placed on a colored background using a white border with shadow. Scheme: *create a colored background with width+80 and height+80 in "TEMP1" *create a white picture with width+20 and height+20 in "TEMP2" the border-size is 10 pixels (20/2) *create a black picture with width+20 and height+20 in "TEMP3" the border-size is 10 pixels, too *place the black picture on the colored background with offset 40x40 pixels *place the white picture on the colored background (now with the black picture on it) with offset 30x30 *all these things you have to do ONLY 1 time, the result-picture will be saved to Puffer "TEMP1" and will NOT be changed anymore! So we can tell Wildfire that it has to do this effect only once! Thats why we choose as RANGE for this effects 0 0 1, which allows the creation of this effects only once, no matter with which picture you start the script! *every picture from the animation will be placed with offset 40x40 on the created colored picture with black and white border. ARexx-Programm: /* create background and save to TEMP1 */ pc_add createimage temp1 width+80 height+80 255 0 0 255 255 0 0 255 0 0 0 255 pc_add createimage temp2 width+20 height+20 255 255 255 255 255 255 255 255 255 255 255 255 pc_add createimage temp3 width+20 height+20 0 0 0 0 0 0 0 0 0 0 0 0 pc_add compose 40 40 100 temp1 temp3 temp1 none pc_add compose 30 30 100 temp1 temp2 temp1 none /* only do this operations at frame 1 */ pc_select createimage 1 pc_from 0 pc_to 0 pc_select createimage 2 pc_from 0 pc_to 0 pc_select createimage 3 pc_from 0 pc_to 0 pc_select compose 1 pc_from 0 pc_to 0 pc_select compose 2 pc_from 0 pc_to 0 /* compose STREAM with TEMP1 for every animation-picture */ pc_add compose 40 40 100 temp1 stream stream none @ENDNODE @NODE Tut1-Intro "1. Introduction" Welcome to the Sequencer Tutorial! This workshop will show you the fantastic possibilities of the Image Processor! You won`t trust your eyes when you see what you can do with this great program. As we are using the great BUILD-FROM-BLOCKS-concept you can change the project in an easy way to fit your personal needs. First inform yourself about the @{" Hardware Requirements " LINK Tut1-Req}! @ENDNODE @NODE Tut1-Req "2. Hardware Requirements" This utorial is aimed on users with something like the following configuration: CPU: MC68020/MC68030 RAM: 4 MB Fast, 2 MB Chip HD: 120 MB about 10 MB free Harddisk-space! but we recommend: CPU: MC68040/MC68060 RAM: 8 MB Fast, 2 MB Chip HD: 1 GB about 25 MB free Harddisk-space! Of course you don`t have to follow this rules, you may use your private settings concerning the animation format and so on... Now lets start with the @{" Tutorial " LINK Tut1}. @ENDNODE @NODE Tut1 "3. Tutorial" @{" 0. Story " LINK Tut1-Story} @{" 1. Preface " LINK Tut1-Teil0} @{" 2. Part 1 " LINK Tut1-Teil1} @{" 3. Part 2 " LINK Tut1-Teil2} @{" 4. Part 3 " LINK Tut1-Teil3} @{" 5. Part 4 " LINK Tut1-Teil4} @{" 6. Part 5 " LINK Tut1-Teil5} @{" 7. Part 6 " LINK Tut1-Teil6} @{" 8. Part 7 " LINK Tut1-Teil7} @{" 9. Part 8 " LINK Tut1-Teil8} @{" 10. Part 9 " LINK Tut1-Teil9} @{" 11. Script " LINK Tut1-Script} @ENDNODE @NODE Tut1-Story "Story" Starting with 2 x 60 24Bit-Pictures "CHA" and "CHB" we want to create some animations using fading and special effects. Story: -"CHA" will be wiped into the picture -"CHA" will be played quite normal -"CHA" will be roteted (360 -"CHA" will be twirled -"CHB" flies into the picture in a smalle size -"CHB" will be scaled to full size -"CHA" will be fadet out and a little bit displaced -"CHB" will be played quite normal -"CHB" will be fadet out All session- and process files are stored in the same called directorys. To generate the needed animations you have just to: (f.i. animation "chab_wipe.yafa) - use the graphical user interface: *converter: load the session file "chab_wipe.session" *converter: press the "Convert" gadget (or just press ) (the needed process file "chab_wipe.process" will be loaded by the sesssion file without user interaction.) But we want to learn how the processor works. That`s why you should make the animations yourself, following this tutorial! If you managed that you will know how to work with Wildfire and it will be eas for you to produce effects yourself! So first read the @{" Preface " LINK Tut1-Teil0}! @ENDNODE @NODE Tut1-Teil0 "Preface" Your actions are written in {} brackets. Both animations we are dealing with consits of 60 frames each. So the timedependent Koordinates end with 60 for the last frame. First of all start Wildfire. {wf } Afterwards ffnen des preferences window. {PREFERENCES} Change to the paths-selector. {PATHS} Use the following paths: {ANIMATIONS wftut:halve_size/results/} {PICTURES wftut:halve_size/frames/} {YAFA-PLAYER wf:YP} Save the preferences. {CLOSE Filenames/Drawers} {SAVE Prefs} {CLOSE Prefs} Now all needed selections are made, so lets come to @{" Part 1 " LINK Tut1-Teil1}. @ENDNODE @NODE Tut1-Teil1 "Part 1" cha_wipe.yafa ffnen des converter window. {CONVERTER} If you want to do it the easy way just load the session file! {LOAD Session cha_wipe.session} All settings are made automaticly, you jut need to start converting. {CONVERT} You can do this for all 9 animations but ... We want to get to know how the program works, so ... we will NOT use this files but do everything ourselves! Select Single Pictures as Input Type. {INPUT TYPE Pictures} Select YAFA Animation as Output Type. {OUTPUT TYPE YAFA Animation} Select the following YAFA Options: {RELATED OPTIONS} {IMAGE-DATA RAW} {COLORMAP UNLOCKED} {FORCE TIMECODES OFF} {SPEED 2} [3] {POST-COMPRESSION XPK} {Compressor FAST} {DELTA-COMPRESSION ByteBR} {Uncompressed Frames 1} {UC-Mode Delta} Close the YAFA-Options. {CLOSE YAFA-Options} Select {PREVIEW Screen} and {PROCESSOR Enabled} {INPUT RELATED OPTIONS} Add the directory with the 60 pictures for the CHA anim: {ADDDIR wftut:halve_size/frames/chA} {CLOSE Related Options} Choose the name for the animation: {OUTPUT Browse} {wftut:halve_size/results/cha_wipe.yafa} ffnen des {PROCESSOR} First of all we want the Animation CHA to fly from the left side into the screen. Furthermore we want to fade this animation. So we create a black screen as background. {ADD CREATEIMAGE} Now we edit create-image. {DOUBLECLICK CreateImage} (in the list) or {EDIT} Now we make the following selections: {WIDTH 176} ... Breite des the Animation {HEIGHT 144} ... H he des the Animation {OUTPUT Temp1} ... Puffer for the black picture Now we select for all 4 colors the rgb-values 0. The color-gadgets will be displayed in their right colors if you work on an 256 color-screen. Otherwise you will NOT see their right colors. Just look at the values, they have to be 0,0,0. ************************************************************ Note: To get the needed Koordinates in a very easy way just do the following things: f.i. add CreateImage effect. Select the effect. (like described some lines {OPEN Single-Picture-Process} {INPUT wftut:halve_size/frames/cha/pic.0001} {APPLY DIMENSIONS} Using Apply Dimensions the sizes of the picture will be used for the effect. Thats for instance the size for the CreateImage effect and the centre Koordinates for the twirl and rotate effect. ************************************************************ {CLOSE CreateImage-Options} Now we create some variables. {VARIABLES} {ADD left} {ADD mix} {DOUBLECLICK left} We are looking at the envelopes-Fenster. Let`s add two points: {ADD PNT Klick into the window} {ADD PNT Klick into the window} The change the position of the first poin we select it: {KLICK on the 1. point} {X = 0} (just write it into the correspondending gadget) {Y = -160.00} Select the second point. {KLICK on the 2. point} {X = 5} {Y = 0} Select the 3. point. {KLICK on the 3. point} {X = 60} {Y = 0} Choose bezier as interpolation method. {INTERPOLATION bezier} For the following variables you follow these steps exactly. I use a short form of writing the down. Have a look at these examples for the variables you created a minute ago. Variable: left Points: 3 Nr. 1: 0, -160 Nr. 2: 5, 0 Nr. 3: 60, 0 Interpolation: bezier Lets come to the second variable. 2. Variable: Variable: mix Points: 3 Nr. 1: 0, 0 Nr. 2: 20, 100 Nr. 3: 60, 100 Interpolation: bezier {CLOSE Envelope} {CLOSE Variables} Now we add a compose effect: {ADD COMPOSE} {EDIT compose} {BACKGROUND Temp1} ... generated picture in Temp1 {FOREGROUND Stream} ... Animation in Stream {DESTINATION Stream} ... destination -> Animation {ALPHA none} ... Alpha Channel {GENLOCK none} {LEFT left} ... Using the gadget VAR you choose our created variable left as the value for the LEFT position of the animation. Within our 60 frames the front animation will move from the left side (-160) into the screen (0). {TOP 0} ... The animation will stay on the same heigth all the time. {MIX mix} ... Within the 60 frames we change the value of mix from 0 to 100. Mix 100 means you will only see the pictures in front of the background pictures - and these are the frames of the animation! {CENTREX off}... pics will NOT be centred {CENTREY off}... pics will NOT be centred {MODE Color} {DITHERING Floyd} {DEPTH 5} Now we made all settings, so press the CONVERT gadget in the converter window! {CONVERT} Depending on the speed of your computer you may drink a cup of coffee or just look how the animation is created. The 60 24-Bit pictures will be wiped, fadet, ditherd and saved in 5-Bit. From the @{" Part 2 " LINK Tut1-Teil2} I will tell you only the important things as you should know by know how the whole thing is working! @ENDNODE @NODE Tut1-Teil2 "Part 2" cha.yafa Now we create an animation without effects. So first remove all the effects form the processor-list. {PROCESSOR CLEAR} The following settings stay unchanged for the whole tutorial! {MODE Color} {DITHERING Floyd} {DEPTH 5} The input single-pictures stay the same as in part 1! Do not forget to change the output name into: {wftut:halve_size/results/cha.yafa} So lets start the converting! {CONVERT} @{" Part 3 " LINK Tut1-Teil3} @ENDNODE @NODE Tut1-Teil3 "Part 3" cha_rotate.yafa Now the CHA Animation will be rotated. Output-Name: {wftut:halve_size/results/cha_rotate.yafa} Variable: rotate Points: 2 Nr. 1: 0, 0 ... Start 0 Nr. 2: 60, 360 ... end 360 Interpolation: linear Let`s add a rotate effect in the processor: {ADD ROTATE} Make the following selections: {INPUT Stream} ... Input pictures {OUTPUT Stream} ... Output animation {CENTREx 88} ... Zentrum des picture. To get the centre use a calculator or: {SINGLE Picture} {BROWSE picture for the 60 CHA-picture} {APPLY DIMENSIONS} and so you get the centre-settings in the easy way! {CENTREY 72} {RADIUS 120} ... Radius for rotating {AMOUNT rotate} ... amount in degrees {ZOOM 1} ... zoom amount After this we can start the converting! Now come to @{" Part 4 " LINK Tut1-Teil4}... @ENDNODE @NODE Tut1-Teil4 "Part 4" cha_twirl.yafa Lets use the cool twirl effect. (do not forget the output name!) {wftut:halve_size/results/cha_twirl.yafa} Variable: rotate Points: 5 Nr. 1: 0, 0 ... Start 0 Nr. 2: 20, 100 Nr. 2: 30, 210 Nr. 2: 40, 100 Nr. 2: 60, 0 ... End 0 Interpolation: spline We add the twirl effect in the processor: {ADD TWIRL} We choose the following settings: {INPUT Stream} ... Input Pictures {OUTPUT Stream} ... Output animation {FALLOFF out} ... Direction of more power {CENTREX 88} ... Zentrum des pictures {CENTREY 72} {RADIUS 150} ... twirl-radius {AMOUNT rotate} ... degrees {POWER 1} ... Power stays the same {ZOOM 1} ... zoom-amount The twirl effect is very time-consuming. Start the converting and if you have a slow amiga just drink a can of coffee :-) After this interesting effect we go on with @{" Part 5 " LINK Tut1-Teil5}. @ENDNODE @NODE Tut1-Teil5 "Teil5" chab_wipe.yafa Now, for the first time, we will see two animations on the screen. CHA will be played in the background and CHB will be moved from the top left corner to the middle of the screen and zoomed to halve of their size. {wftut:halve_size/results/chab_wipe.yafa} Variable: breite Points: 2 Nr. 1: 0, 0 ... start-width 0 Nr. 2: 60, 88 ... end-width 88 (176/2) Interpolation: linear Variable: hoehe Points: 2 Nr. 1: 0, 0 ... start-height 0 Nr. 2: 60, 72 ... end-height 72 (144/2) Interpolation: linear Variable: left Points: 2 Nr. 1: 0, 0 ... start left Nr. 2: 60, 44 ... end in the middle (Koordinate of the left side of the animation) Interpolation: linear Variable: top Points: 2 Nr. 1: 0, 0 ... start at the top Nr. 2: 60, 36 ... end in the middle Interpolation: linear Now we add the following effects {ADD LOADIMAGE} {ADD SCALE} {ADD COMPOSE} We make the following selections: Loadimage: {SEQUENCE wftut:halve_size/frames/chB/pic} {OUTPUT Temp1} {REPEAT AT 60} This command loads the file called 'pic.xxxx' with xxxx as the picture of the animation which is generated. So if the processor generates the first picture of the anim LOADIMAGE will load pic.0001. For pic 60 of the anim pic.0060 will be loaded. With repeat you choose which is the last picture. Afterwards LOADIMAGE will restart the index with 1. We use the Puffer Temp1 for loading. With the 8 Puffer and the Strem we can combine 9 animations in an very easy way! Scale: {INPUT Temp1} ... input picture {OUTPUT Temp1} ... Output picture {WIDTH breite} ... Breite des the picture {HEIGHT hoehe} ... H he des the picture {TYPE pixels} ... Values in Pixel {ASPECT ignore} ... Aspect will be ignored The temp-picture from the CHB anim will be scaled to the size we set in the variables "breite" and "hoehe". Compose: {BACKGROUND Stream} ... backgrund pictures from animation CHA {FOREGROUND Temp1} ... foregrund pictures from animation CHB {DESTINATION Stream} ... output to the Stream {ALPHA none} ... Alpha chanal {LEFT left} ... left Position {TOP top} ... top oben {MIX 100} ... Mix = 100 ... you see only the anim in front! The background of the animation CHB is black. We want the background of the CHB anim to be masked out, so we see the anim CHA in the background. {CENTREX off} ... pics will NOT be centred {CENTREY off} ... pics will NOT be centred {GENLOCK SingleColor} ... you can see through one color {ALL RGB-VALUES 0} ... we choose the black color! Ready, steady, convert! Let`s move to @{" Part 6 " LINK Tut1-Teil6}. @ENDNODE @NODE Tut1-Teil6 "Part 6" chab_scale.yafa This animation part is almost like the chab_wipe.yafa anim! Only the size and position of the chb pictures differ! {wftut:halve_size/results/chab_scale.yafa} Variable: breite Points: 2 Nr. 1: 0, 88 ... halve size at the start Nr. 2: 60, 176 ... full size at the end! Interpolation: linear Variable: hoehe Points: 2 Nr. 1: 0, 72 ... halve size at the start Nr. 2: 60, 144 ... full size at the end! Interpolation: linear Variable: left Points: 2 Nr. 1: 0, 44 ... Start -> CHB centred Nr. 2: 60, 0 ... End -> CHB left Interpolation: linear Variable: top Points: 2 Nr. 1: 0, 36 ... Start -> CHB centred Nr. 2: 60, 0 ... End -> CHB top Interpolation: linear Now add the following effects: {ADD LOADIMAGE} {ADD SCALE} {ADD COMPOSE} Make the following selections: Loadimage: {SEQUENCE wftut:halve_size/frames/chB/pic} {OUTPUT Temp1} {REPEAT AT 60} Scale: {INPUT Temp1} ... input picture {OUTPUT Temp1} ... Output picture {WIDTH breite} ... width {HEIGHT hoehe} ... height {TYPE pixels} ... Values in Pixel {ASPECT ignore} ... Aspect will be ignored Compose: {BACKGROUND Stream} {FOREGROUND Temp1} {DESTINATION Stream} {LEFT left} {TOP top} {MIX 100} {CENTREX off} ... pics will NOT be centred {CENTREY off} ... pics will NOT be centred {GENLOCK SingleColor} {ALL RGB-VALUES 0} Start CONVERT! Do you feel it? Move on to @{" Part 7 " LINK Tut1-Teil7}. @ENDNODE @NODE Tut1-Teil7 "Part 7" chab_fade.yafa Both animations are now full size. In front is chb. We can look through the background of chb and see cha. Cha will now be fadet out and a little bit displaced. {wftut:halve_size/results/chab_fade.yafa} Variable: probability Points: 3 Nr. 1: 0, 0 ... probability for displacing a point Nr. 2: 59, 0 Nr. 3: 60, 100 Interpolation: bezier Variable: brightness Points: 3 Nr. 1: 0, 0 ... brigthness of CHA. Nr. 2: 59, -10 Nr. 3: 60, -60 Interpolation: bezier Variable: radius Points: 3 Nr. 1: 0, 0 ... radius within the points will be displaced Nr. 2: 60, 20 Interpolation: linear We add the following effects ... {ADD LOADIMAGE} {ADD DISPLACE} {ADD BALANCING} {ADD COMPOSE} ... and make these selections: Loadimage: {SEQUENCE wftut:halve_size/frames/chB/pic} {OUTPUT Temp1} {REPEAT AT 60} Displace: {INPUT Stream} ... input Pictures of Anim CHA {OUTPUT Stream} ... output Stream {RADIUS Radius} ... displace-radius {PROBABILITY probability} ... displace probability {SEED probability} ... start value for randomize Balancing: {INPUT Stream} ... input picture {OUTPUT Stream} ... output picture {alles auf 0} {BRIGHT brightness} ... brightness of anim CHA Compose: {BACKGROUND Stream} {FOREGROUND Temp1} {DESTINATION Stream} {LEFT 0} {TOP 0} {MIX 100} {CENTREX off} ... pics will NOT be centred {CENTREY off} ... pics will NOT be centred {GENLOCK SingleColor} {ALL RGB-VALUES 0} After this settings we start converting. Let`s come to @{" Part 8 " LINK Tut1-Teil8}. @ENDNODE @NODE Tut1-Teil8 "Part 8" chb.yafa The animation will be generated without effects. {PROCESSOR CLEAR} The processor settings stay the same. {MODE Color} {DITHERING Floyd} {DEPTH 5} We have to use new INPUT-SINGLE PICTURES, as we don`t need the cha pictures anymore! {REMOVE RANGE} There should be no more entries. Now ... {ADDDIR wftut:halve_size/frames/chB} Select ... {wftut:halve_size/results/chb.yafa} as output name and convert. Now you reached the last part, @{" Part 9 " LINK Tut1-Teil9}. @ENDNODE @NODE Tut1-Teil9 "Part 9" chb_fade.yafa The animation CHB will be fadet out! {wftut:halve_size/results/chb_fade.yafa} Variable: brightness Points: 3 Nr. 1: 0, 0 ... brightness of animation CHB. Nr. 2: 59, -10 Nr. 3: 60, -60 Interpolation: bezier In the processor we ... {ADD BALANCING} ... and make the following selections Balancing: {INPUT Stream} ... input picture {OUTPUT Stream} ... Output picture {alles auf 0} {BRIGHT brightness} ... Helligkeit der Anim CHA Now CONVERT. Congratulations! You just generated all the needed animations! Now lets add a small @{" Script " LINK Tut1-Script} to play the animations. @ENDNODE @NODE Tut1-Script "Script" We start the editor: {EDITOR} We add all the generated animations to the list. {ADD cha_wipe.yafa} {ADD cha.yafa} {ADD cha_rotate.yafa} {ADD cha_twirl.yafa} {ADD chab_wipe.yafa} {ADD chab_scale.yafa} {ADD chab_fade.yafa} {ADD chb.yafa} {ADD chb_fade.yafa} Using INFO we make some settings for every animation: {DISPLAY Zoomed} 2x2 zooming of the anims, or not. {BUFFERS 4} only 4 buffers, so we dont use too much memory Choose these settings for all animations. Now use {PLAY ALL} for playing the animations. Press {AMIGA M} and look at the memory. You should have some empty fast-memory, otherwise you should change your settings and use only 3 Puffer for every animation! The zooming, decrunching etc. works faster in the FAST memory! Lets save the project! {PROJECT wftut:halve_size/Wildfire.prj} {SAVE} With the external @{" YAFA " link yp.guide/MAIN} Player we can now play this animations every time we want. Wildfire is not necessary for playing the animations! YP (the player) can be downloaded from the internet by everyone! {YP -batch wftut:halve_size/Wildfire.prj} Now you saw how to wor with some important functions of Wildfire. For learning more about this great program read the documenation and test the great possibilities of it! Thank you for using this tutorial! @ENDNODE @remark /*************************************************************/ @remark /* @remark Demos @remark */ @remark /*************************************************************/ @node Demos W K - A r t w o r k s in cooperation with Infect! A PART OF LIFE ELEMENTS - A RELIGION CAN'T DIE ! @{b} The following releases were made using Wildfire: @{ub} @{" Dataworld 1 " link dw1} @{" Wild Summer " link ws1} @{" Dataworld 2 " link dw2} @endnode @node dw1 Dataworld was released at The Party 1995 in Fredericia/Denmark. It finished second in the Wild Competition - a competition where no Hardware restrictions were given. With only 70 MB of (hard/cd)diskspace you will get a 10 MINUTE-FULL-SCREEN-VIDEO-SHOW that just needs an standard A1200 with 4 MB of Fast Ram to run. Dataworld consists of over 30 @{" YAFA " link yp.guide/MAIN} animations, all linked smoothly together using the great @{" Wildfire " link Wildfire.guide/MAIN}. With the @{" YAFA " link yp.guide/MAIN} player all the animations are played without interruption, even on a standard 4x CD rom! Dataworld can be found on: Aminet CD 11 (everything archived) MagnaMedia Amiga Magazin CD 5/6 96 (run from cd) CU amiga coverdisk 04/96 (run from cd) Scene Storm CD 1 (run from cd, use the fix IFT-SFIX.lha) Remember to use the latest @{" YAFA " link yp.guide/MAIN} player on your amiga! You can get it from the Aminet or from different coverdisks. Dataworld is copyrighted to: WK-Artworks (animations, Wildfire concept) Smack/Infect! (@{" YAFA " link yp.guide/MAIN} concept) DJ Mellow-Noise/Infect! (music) Eksec/Infect! (executive producing) @endnode @node ws1 WiLD SuMMeR was released at `The Summer Party 96` in Denmark. It finished second in the Wild Competition - a competition without any Hardware-restrictions. With only 30 MB Place on CD/HD you`ll get a 4 Minutes full-screen Video which runs on an - todays - standard A1200 (at least 4 MB Fast). WilD SuMMeR consists of over 20 @{" YAFA " link yp.guide/MAIN} Animations, which were created using the great Wildfire. Using the latest @{" YAFA " link yp.guide/MAIN} player you can watch the show even from a ZIP-Drive or a 4X Speed CD-Rom without any gaps between the animations. WiLD SuMMeR is available on: Aminet CD 13 (all animations archived) CU Amiga Cover CD (run from cd) MagnaMedia Amiga Magazin CD 3/4 97 (run from cd) WiLD SuMMeR copyrighted to: WK-Artworks (Animations, Wildfire concept) Smack/Infect! (@{" YAFA " link yp.guide/MAIN} concept) DJ Mellow-Noise/Infect! (Music) Eksec/Infect! (Executive Producing) @endnode @node dw2 Dataworld 2 was released at The Party 1996 in Aars/Denmark. With 150 MB of (hard/cd)diskspace you will get a 12 MINUTE-FULL-SCREEN-VIDEO-SHOW that just needs an standard A1200 with 4 MB of Fast Ram to run. Dataworld 2 consists of over 30 @{" YAFA " link yp.guide/MAIN} animations, all linked smoothly together using the great @{" Wildfire " link Wildfire.guide/MAIN}. With the @{" YAFA " link yp.guide/MAIN} player all the animations are played without interruption, even on a standard 6x CD rom! Dataworld 2 can be found on: MagnaMedia Amiga Magazin CD 3/4 97 (run from cd) Remember to use the latest @{" YAFA " link yp.guide/MAIN} player on your amiga! You can get it from the Aminet or from different coverdisks. Dataworld 2 is copyrighted to: WK-Artworks (animations, Wildfire concept) Smack/Infect! (@{" YAFA " link yp.guide/MAIN} concept) DJ Mellow-Noise/Infect! (music) Eksec/Infect! (executive producing) @endnode @remark /*************************************************************/ @remark /* @remark Technical stuff @remark */ @remark /*************************************************************/ @node Technical @{b}Technical stuff: @{ub} Wildfire was developed using StormC and MUIBuilder (NOT!). Wildfire is a very complex program written in ANSI-C. Because the 10 MB of source-code are too "complicated" for most of the Amiga-compilers we decided to use GCC. One of these other "compilers" was even not able to *translate* some portions of the ANSI-C-code - which is really poor. GCC on the other side compiles all 200 modules producing only 6 warnings. The GUI was completely designed using GadToolsBox, Wildfire 3.87 has 151 windows containing 1400 gadgets (including all PlugIns). This complexity makes it impossible to use one of these "intelligent GUI-designers" because of the large overhead they produce. The main program was always designed for speed and not to conserve memory (You can buy computers, memory, ...- but not time). All 3d-operators are optimized to use a fpu. That means that they operate fast on systems with fpu but may be worthless on other systems. (For example a combination (PowerPlugs!) of a Bump3D- and a Wrap-effect applied to an image of the dimensions 640x480 takes only 30 seconds on a 060-equipped machine.) Because most floating-point-operations on the 060-processor are faster than integer-manipulations I decided to use "natural code" instead of cryptic integer-manipulations. On the other side most 2d-operators are designed to be fast on all machines. This made is necessary to replace all floating-point-operations by integer-manipulations like "*luxa++=(WORD)((((dx2*ca+dy2*sa+VPREC2)>>SPREC)+cx+VPREC2)>>SPREC);". As you can see we have put a lot work into this project, so @{b}PLEASE DON'T USE OR SPREAD PIRATE COPIES !@{ub} @endnode @node RenderSettings @{b}Render Settings@{ub} From within this window all render-settings of various 3d-operators supporting the @{" PowerPlugs! " link PowerPlugs!}-concept can be adjusted. Most these options are ignored if the output of the selected effect ist a 3d-temp-buffer. The only exception ist the parameter "Quant3D" which affects the quality of both rendered images and transformed objects. @{b}Parameters@{ub} Name Possible Values/Unit Description @{uu} Zoom -10.0...10.0 zoom factor for the whole image CentreX, pixels centre for zooming and rotating CentreY pixels CamX, pixels camera-position CamY, pixels CamZ pixels Rotate XY, YZ, XZ, NONE axis-pair to rotate around/disable rotating Alpha degrees first rotation angle Beta degrees second rotation angle Light NORMAL, PHONG, OFF type of the applied shading Current 1...4 select the lightsource to modify LightX, pixels position of the current lightsource LightY, LightZ LightRed, 0...255 color of the current lightsource LightGreen, LightBlue Ambient 0.0...1.0 ambient intensity Diffuse 0.0...1.0 diffuse intensity Phong 0.0...1.0 phong intensity PhongSize 0.0...infinity size of the "phong-spot" PhongAngle degrees max-smoothing-angle for the phong-shader Faces NORMAL, DOUBLE draw the faces single- or double-sided Quant3D 0.1...100.0 @{" 3D-Quantization-Value " link pcQuant3D} @{b}Functions@{ub} Store copy the current settings to an internal buffer Import import settings from the internal buffer This functions are very useful if you have designed a "perfect scene" and want to add some more effects tod image. The camZ-values must be always in the range -100...-10000. Small values like -200 cause "strange" views, large values like -1000 cause the generation of a nearly parallel view. The actual limits depend on the image-size but the preset-value of -800 should always produce a "normal 3d-look". B) Phong Shading Phong shading is only applied to triangles or imported Lightwave-objects. Rendering simple objects without "sharp edges" a phong-angle of >180 degrees speeds up the computation. C) Lightsources If you have no idea about the various intensities here comes a more detailed description: *ambient : ambient intensity is the brighness of the object if all lightsources are turned off. *diffuse : diffuse intensity is the intensity of light used to modify the object-color. (Therefore the combination ambient=1.0 and diffuse=0.0 produces "flat" images.) *phong : intensity of these nice "bright spots" *phongSize: size of the phong-spots, large values (like 10.0...100.0) produce surfaces with high gloss ("hardness") D) Coordinate System The following coordinate system is used while transforming and rendering images: -y^ |________ y^ | | | /z ===> | | |/ | | ---> x ----------> x 3D-Object image @endnode @node ParameterSettings @{b}Parameter Settings@{ub} The Parameter-window was designed to allow an uniform and very comfortable way to adjust the various animation-parameters of Wildfire's PlugIns. To avoid confusion only one parameter can be modified at one time. After opening the Parameter-window you have three choices to change the current parameter: *entering an expression or a number into the "Value"-gadget *using the scrollbar to graphically specify a value *selecting a previously defined Envelope using the "Var"-gadget. The scrollbar is especially useful to "get in touch" with these lots of parameters. Since version 3.74 most of Wildfire's PlugIns feature a realtime-preview. In this case all changes to the current parameter are made visible instantly (while dragging the scrollbar). @endnode @node ColorSettings @{b}Color Settings@{ub} The Color-window was designed to allow an uniform and very comfortable way to adjust color-parameters of Wildfire's PlugIns. For each color-component there is the usual scrollbar etc. similar to the @{" Parameter-Settings " link ParameterSettings}-Window. But colors can also be specified using the global color-database which can be accessed from within this window. @endnode @node TruecolorImages @{b}Truecolor Images@{ub} Since version 4.xx both the Converter and the Processor support truecolor images with a depth of 15 or 24. There are different "tricks" to display such images on AGA-machines. The prefered method which affects all the Processor- the Converter- and the Player-display can be choosen from within the @{" Player " link PlayerWindow}-Window. (This setting is ignored on 15/24 bit-screens under CyberGraphX.) Note: To create a 15/24 bit YAFA-animation you have only to specify the depth (15 or 24) from within the @{" Processor " link ProcessorWindow}-Window and to set the "Processor"-switch in the @{" Converter " link ConverterWindow}-Window to "Enabled". @endnode @node Bonus @{b}Bonus Programms on the CD@{ub} The following Bonus-programs are included on the CD: @{" Dust registered Version " link Dust } @{" Visage Pictureviewer " link Visage } @{" Drag.Gadget and Patchgels " link DragGadget } @{" NewIcons V4.1 " link NewIcons } @{" Animation Datatype " link AnimationDT } Please have a look inside the Bonus-Directory on the CD! There are the full archives. Please read the documentations of this programs concerning their usage and copy-rights! Many thanx to the authors of this nice programs! @endnode @node Dust @{b}Dust@{ub} Dust is a F/X-software manipulating 3D-objects. So it's a perfect completion for your modelling-program and comes with many features no modelling-program has. Because Dust is no toy the user should know how to use a 3D-rendering and -modelling-program and should have basic programming-skills. Because there are lots of good 3D-programms for the Amiga I had to made a choice - Dust supports only "Imagine" and "Lightwave" directly. If you use another program you have to obtain a good object-converter which is able to operate on batch- or ARexx-scripts. (You cannot convert 120 objects by hand...) The main features of Dust are: -local metamorphosis which produces very good results -smooth-algorithm producing incredible results -direct support of "Imagine" und "Lightwave" - the most popular raytracing-packages -loading, saving and viewing of object-sequences -metamorphosis between any two objects -particle-system: exetremely simple structure (for programmers), opens a new dimension of object-modelling -realistic explosions (gravity, stokes-friction, ...), -realistic water-waves (3D-unharmonic waves) -1D-,2D- and 3D-waves, transversal, longitudinal, including particle-waves -mathematical distortion of points, face-colors, particles, so you can use Dust as simple function-plotter, too -every programmer can create various particle-effect in an easy way, the knowledge of the TDDD-format (or object-structures etc.) is not necessary -every face can have an own color, every edge has a sharp/soft-flag, this data is kept creating particle-objects -handling and changing of Imagine3.0-textures and -brushes -sphere-objects: particle-Objects made of real spheres -creation of objects from external programs -ARexx-port -user-defined variables, mathematical expressions instead of plain numbers as arguments, loops, simple if-statement -very flexible preview-function -online-help -command-, parameter- and help-topic-completion Other programs, e.g. Imagine which is supported by Dust directly, are able to create some of effects mentioned above, too. But this programs create the effect while rendering - you cannot edit the transformed objects. With Dust you can linearcombine all types of effects. @endnode @node Visage @{b}Visage@{ub} Visage is picture viewer for the AmigaOS version 3.0 and higher, written by Magnus Holmgren. It can display IFF ILBM, JPEG, PNG and Datatype pictures. Main features include: Supports AA (AGA), ECS, RTG, CyberGraphX, PCHG, SHAM and CLUT. ;) Can display deep pictures in all formats on ECS Amigas, rendered in HAM, "normal" color or grayscale. Can scale "rendered" pictures to fit the screen. Extensive monitor support. Uses a BestModeID()-like function to find a suitable mode (if needed). Any native Amiga screen mode can be specified with text! No numbers needed. But you can use numbers, if you wish. Or a requester. Simple promotion of pictures to any installed monitor. No hardcoded command line options for this. There is even a monitor requester. Several slideshow options, including a random mode, making Visage ideal for use with screen blankers as an external module. It's free! The complete Visage archive (including the manual) is available in the Bonus directory on the CD. The latest version is also available on Aminet (gfx/show) and via the World Wide Web, at "http://www.lls.se/~cmh/". For more information about Visage and its distribution rights, please see the manual. @endnode @node AnimationDT @{b}Animation Datatype@{ub} The animation.datatype and some datatypes are in the Bonus directory, of this cd, too! All Animation datatypes which are working with this animation.datatype will be used bye Wildfire when reading IN animations. Short: animation.datatype V41.2 Uploader: GISBURN@w-specht.rhein-ruhr.de (Roland Mainz) Author: GISBURN@w-specht.rhein-ruhr.de (Roland Mainz) Type: util/dtype This is the first official public version of animation.datatype V41. INTRODUCTION animation.datatype is the datatypes base class for all animation and movie subclasses. It is responsible for remapping, sound, scronisation and misc. other things FEATURES - Supports now the full animation.datatype interface like defined in include31:datatypes/animationclass.h: - Supports palette-per-frame, e.g. each frame can have it's own palette. - Dynamic timing. A frame can have a variable duration until the next frame occurs. - Fully compatible to the original animation.datatype V40.7 - Configurable througth a preferences file. - Includes a CPU blitter for planar screens. If enabled by the prefs file, animation.datatype uses a CPU blitter instead of the OS blitter. - CyberGFX compatible: - Now animation.datatype V41 can handle non-planar bitmaps, e.g. chunkypixel bitmaps, as input. (Currently they cannot be remapped, the bitmaps are displayed unchanged on the destination screen). - Supports HAM/EHB -> 24-bit remapping. (TEMPORARY DISABLED). - No skipping anymore. The aniation.datatype V41 introduces a new feature called "adaptive frame rate selection". Instead of skipping frames when they cannot be displayed in real-time, the FPS rate is now adapted to fit (e.g. the maximum available playback speed without skipping). REQUIREMENTS - You need at least Kick/WB 3.0. - "realtime.library", >= V39 - for timing - "gadgets/tapedeck.gadget" (any version) - for the controls You need "sound.datatype" >= V40 for sound support. USAGE Usage is very simply: If you have loaded an animation, you can control the animatthrough the shell: - Unpack this archive and copy the "animation.datatype" to SYS:Classes/DataTypes/: Copy CLONE FROM "animation.datatype" TO "SYS:Classes/DataTypes/animation.datatype" AUTHOR If you want to blame me, report any bugs, or wants a new version send your letter to: Roland Mainz Hohenstaufenstra 52388 N rvenich GERMANY Phone: (+49)(0)2426/901568 Fax: (+49)(0)2426/901569 EMAIL is also available (if you want to send me attachments larger than 1MB (up to 5MB, more with my permission): GISBURN@w-specht.rhein-ruhr.de Up to December 1997 I'm reachable using this email address, too: Reinhold.A.Mainz@KBV.DE | Please put your name and address in your mails ! | German mailers should add their phone numbers. | See BUGS section above when submitting bug reports. Sorry, but I can only look once a week for mails. If you don't hear something from me within three weeks, please send your mail again (but watch about new releases) (problems with this email port are caused by reconfigurations, hackers, network problems etc.). The entire "animation.datatype" package may be noncommercially redistributed, provided that the package is always distributed in it's complete form (including it's documentation). A small copy fee for media costs is okay but any kind of commercial distribution is strictly forbidden without my permission ! Comments and suggestions how to improve this program are generally appreciated! Roland @endnode @node DragGadget @{b}Drag Gadget@{ub} The Drag.gadget is inside the Bonus-directory, too. For the latest version just have a look into the internet: aminet/dev/gui/draggadget*.lha For everything concerning drag`n`drop we are using it inside Wildfire. If you are using an old version of CyberGraphX, Wildfire may hang up when you click on icons. There is an error inside the old CyberGraphX-Software, just get a new version or use at least the `Patchgels` program from the Drag.Gadget archive, which will fix this error! drag.gadget release 1.0b2 ------------------------- Copyright 1996/97 J rg Kollmann All rights reserved. This is a new beta version of my drag&drop gadget BOOPSI class. I have tested it (not very much) on an A3000 with kickstart v40. Look at the two example programs (dragtest.c and droptest.c). Note that this is a beta version of drag.gadget and its example programs. They are not tested very much, so you use them at your own risk! Notes: - The driver software of some graphics cards seems to introduce a bug with the GELS animation system, causing the system to crash if animated bobs are used. If this is the case for your system, it can be resolved with the patchgels program (see patchgels drawer). You may use and distribute *this version (drag.gadget 40.21)* freely with your application, if you send me bug reports. This includes reporting system configurations running this class without problems. joergk@informatik.uni-bremen.de @endnode @node NewIcons Some Ikons on the Wildfire-CD are NewIcons. We think that it`s really a nice system and you should give it a try. For the installation you need at least: -Version 43.3 of the Amiga Installers (Aminet: Installer_43_3.lha util/misc 104K CD 16) -ClassAct (a demoversion is on the Aminet: ClassAct2Demo.lha dev/gui 589K CD 20) Short: The Ultimate GUI Enhancement System, V4! Author: Eric Sauvageau , Phil Vedovatti Uploader: vedovatt@u.washington.edu Type: util/wb Replaces: util/wb/NewIconsV4.lha NewIcons is a revolutionary system patch which enhances your Workbench and gives the user much more power and configurability over the appearance of the GUI (Graphical User Interface). The NewIcons system works transparently, and provides for a standard icon system that will look the same on any system, no matter what the palette is set to. DefIcons complements the Newicons system. It works by recognizing a file's type, and instantly displaying the appropriate icon image for files without icons attached to them. The system's features include: Allows up to 256 color icons on an AGA machine. (!) Icon colors are color correct on an AGA system, no matter what your palette is set to. They automatically appear in perfect color. Default icons for dozens of file types automatically appear for files without icons (FAST!). Recognizes file types in a very efficient manner. If you click on a "fake" icon, your appropriate user-defined default tool will appear in the "Execute command" text field automatically! Make a brush, convert it to an icon. It will appear on your workbench in the _exact_ proper colors you created it in, no matter what your palette is set to. Imagine making gorgeous icons from your digitized pics, in _more_ than 32 colors! Icon images are compressed to maximize disk space. They are uncompressed faster than you can say "NewIcons"! Also KS 2.04 compatible (16 color icon limitation). Fix that ugly Cross-DOS icon to look like a standard NewIcon. Unique icons for RAM-Disks and CD-ROM's that don't have icons. A complete set of beautiful, standardized Workbench icons, drawn by Phil Vedovatti. Hundreds of icons are also available separately on Aminet, some with a totally different style. Comprehensive set of utilities to allow you to manipulate your NewIcons. Totaly FREE! Why would anyone want to pay cash for icons? Dithering of icon images is selectable for users with fewer available Workbench colors. This is turned off by default. Icons can be given a single tooltype, which will tell NewIcons to display a NewIcon image from elsewhere on the system. This feature has some caveats, but introduces a huge number of neat possibilities for configuring your Workbench, and saves on disk space and chip RAM. Imagine having your Workbench icons appear randomly different on EACH reboot! The source for deficons.prefs has been included, so any enterprising programmer can add their own file identification types to the system! User configurable, GUI enhanced Preferences program to configure all attributes of the NewIcons system (dither, pen precision, etc.) The NewIcons patch is a commodity, which can be enabled and disabled on the fly, using Commodities Exchange. RTG (ReTargetable Graphics) mode, which allows graphics card users to store icon data in fast RAM instead of chip RAM. This has the advantage of saving your valuable chip RAM for other uses, and speeds up rendering of icons on the Workbench. Border removal option! Remember the Kickstart 1.3 days when there were no gray border boxes around the icons? This new option removes those silly looking boxes once again, and is user configurable. The system library is available in different versions, to ensure the best speed possible on every system configuration. NEW IN V4: Dragged icons can also be optionally made transparent. NEW IN V4: The text shown under the icons can be optionally rendered with a 3D or an outlined look. NEW IN V4: New utilities to make updating whole drawers or partitions with a specified drawer image, and a popup menu utility that displays icon images in a menu format -- could even be used as a program dock launcher with the appropriate scripts. NEW IN V4: New 32 color icon set. NewIcons is now sufficiently faster to allow fast rendering of higher bitplane icons. Changes since 4.0: ------------------ LE/newicon.library was accidently requiring graphics.library V39 instead of V37, so Kickstart 2.04 users were unable to run NI4 at all. Icon TextMode can't work under 2.04 because pen handling was only added in Kickstart 3.0. So it's now disabled under 2.x. (NewIcons and NewIconsPrefs) Removed some debugging output that was forgotten in CreateDefaultIcon. CreateDefaultIcon wouldn't properly create a disk.info file (it was named '.info') if used from the CLI on a disk. Also, it can now properly handle logical names, so 'CreateDefaultIcon t:' will properly create a Ram:T.info file. Fixed all the icons in Icons/Misc/Disks and /Icons/Misc/Drawers. The old icon structure was corrupt, causing CopyNewIcon to crash if run from the WB. Fixed the drawer type deficons in envarcsys...same problem...damn C= Iconpos Program! Changed misnamed envarcsys/def_Trash.info to def_trashcan.info Changed misnamed envarcsys/def_CDDA.info to def_CDDAdisk.info Changed misnamed envarcsys/def_CD0.info to def_CD0disk.info Deleted obsolete deficons (def_zoo.info, def_zoom.info, def_arc.info, def_lzh.info, def_lha.info, def_tar.info) Added deficons def_NETdisk.info, def_FTPdisk.info, def_RADdisk.info, def_mpeg.info and def_DTYP.info Fixed Preview.gif...it no longer has transparency set. Not included in the update file, but is in the full 4.1 archive. Included deficons.prefs source. Made a small change to the installer to hopefully identify 2.04 systems better for installation of the Low End version of the newicon.library. (People, please upgrade...2.04 is ancient!) See the enclosed documentation for more information, and visit the official NewIcons Web Page at: -------------------------------------------------------------------------- http://www.amiganet.org/NewIcons/ -------------------------------------------------------------------------- IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT! Please read the documentation carefully. The icons in this archive have special features and are very different from the usual icons that you find in other icon packages. Viewing them requires the NewIcons program to be running. Patchopenwb must also be installed if you are using Workbench 3.0 or higher. You NEED version 43.3 of the Amiga Installer to install this package properly. The install script won't run if you don't. Gives you a good excuse to upgrade to it anyway. It's on Aminet in util/misc. If you are running 2.0, you need to set up an appropriate palette. One is included for your viewing pleasure. New since version 3, NewIcons must be launched in the user startup with: run <>NIL: c:newicons Read the docs! Failing to do so may result in much frustration. IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT!IMPORTANT! @endnode